nginx配置2台服务器吗?企业网站高可用部署别只看能不能用
本文未附完整的测试环境、工具版本与原始结果,内容作为故障排查或选型资料参考,不标记为实测报告。
当公司的网站访问量大了之后就会出现卡顿的情况,后端系统的页面也经常打不开,于是老板就问,“能不能再增加一台服务器来分担一下压力?”很多IT负责人的第一反应是:用两台服务器做Nginx配置可以吗?答案是能行,但是要认真考虑的是这两台服务器如何选择、怎样部署、出问题的时候怎么切换、以后怎么扩展。
从业务的角度来看,Nginx常见的用途就是做反向代理和负载均衡,将用户的请求分发给后面的多台服务器。例如一台运行着Web应用程序,另一台也部署了同样的业务系统,Nginx在前面按照规则进行分流。可以减轻单个服务器的压力,在某一个服务器出现故障或者需要维护的时候不会造成整个系统的停机。但是如果没有做好硬件、网络、存储以及备份方面的规划,只是一味地增加服务器数量的话,并不能达到预期的效果。
什么样的情况下可以使用这样的方案呢?例如企业的官方网站、办公自动化系统(OA)、企业资源计划系统(ERP)、客户关系管理系统(CRM)、电子商务平台后端接口、小程序接口以及公司内部业务平台等等。当访问量开始上升的时候,单机CPU经常处于高位运行状态,内存占用时间很长,数据库与应用程序共存于同一台机器之上,或者是老板提出要使系统更加稳定的请求时,“Nginx+两台业务服务器”作为基本的高可用架构就值得被考虑了。
选择服务器的时候要关注以下几点:
1. CPU核心数量
对于web应用和服务来说,更加重视的是并发处理的能力。中小型企业可以先从单核或多核处理器开始做起,如果为java应用程序或者ERP系统,并且有比较多的并发接口的话,则要留出更多的核心数量来防止刚开始运行的时候就达到上限。
2. 内存大小
不能只按照“系统可以运行”的标准来配置。应用服务、缓存、中间件等会占用大量的内存资源,一般建议从32G、6T开始,并且要根据用户的数量以及软件的需求来计算。以后业务发展了之后,内存插槽和最大容量也得提前看一下。
3. 硬盘种类以及RAID模式
系统盘最好使用企业级固态硬盘,根据业务数据盘的读写压力来决定是否选用固态硬盘或者大容量机械硬盘。RAID1适用于系统盘镜像的情况,而RAID5、RAID10则可以同时满足对容量和性能都有要求的业务数据场景。不能忽略热插拔硬盘以及阵列卡的影响,因为它们会降低故障恢复的速度。
4. 电源冗余以及远程管理
企业在机房中应该首先考虑使用冗余电源来降低单一故障的风险。带有独立远程管理模块的服务器可以实现远程开机、关机、查看硬件报警以及挂载镜像安装操作系统等功能,在没有专门机房人员的企业里非常实用。
5 网络带宽以及交换环境
两台服务器进行负载均衡,并不等于网络瓶颈就不存在了。需要看公网带宽、内网交换机、网卡速率和防火墙策略等。如果存在数据库服务器、文件存储或者备份设备的话,那么内网应该从千兆开始规划,数据量大的话可以考虑万兆网络。
6. 系统部署以及备份方案
Nginx 只是入口层,后面的应用版本、数据库连接、日志目录、SSL证书、备份脚本等都需要进行统一规划。重要的数据应该有本地备份和异地备份,不能只依靠RAID来作为备份,把RAID当作备份是很多公司会遇到的问题。
另外要说明的是:Nginx 配置两台服务器一般只能解决应用层的流量分担以及部分故障转移的问题。如果数据库只有一台,或者是文件上传只保存在本地的话,就会出现访问不一致、数据不同步的情况。比较安全的方法就是按照业务来划分:前端用 Nginx 负载均衡,后端应用双机部署,数据库单独做主从、备份或者更高层次的方案,文件可以使用 NAS、对象存储或者共享存储来承载。
即使预算不多也可以做到稳定,并不一定要一开始就追求复杂的结构。主要就是看业务场景了:有多少人来访问?运行的是哪个系统?数据量有多大?有没有等保合规的需求?要不要进行国产化的替换?有无上门安装和维护的要求?等等。服务器的价格也要按照品牌、CPU、内存、硬盘、RAID卡、电源、服务年限等因素来计算,不能只看一个便宜的配置清单。
如果要给两台服务器配Nginx,或者是做网站、ERP、业务系统等双机部署的话,可以把具体的业务场景、访问量大小、软件种类、现有的服务器配置以及预算范围发过来,我能够为你整理出一个更符合采购沟通的服务器配置方案、报价方向以及部署建议。