【Nginx】使用 Nginx 做负载均衡
一、前言
随着业务的不断增长,高峰期系统访问量增大,会给生产服务器带来一定的压力。我们通常会通过搭建服务集群,将同一个服务部署在多台服务器,再通过负载均衡(Load Balance)将流量分发到多个节点,来扩展服务应用能力,提高服务可用性(保证单点故障时服务任可用)。常用的负载均衡软件有LVS、Nginx、HAProxy,下面就我工作中使用的 Nginx 做个小小总结。
二、Nginx 简介
Nginx是一款轻量级的Web服务器、反向代理服务器,具有高可靠性、并发能力强、可扩展性等特点。更多可查看官方文档:http://nginx.org/en/docs/
三、安装及运行
1)安装 Nginx (以 MacOS 系统为例)
执行 brew install nginx 命令即可完成安装, nginx -v 查看版本号,我这里安装的是 1.19.2 版本。配置文件默认在 /usr/local/etc/nginx 路径下,可以按照需求进行修改。
2)运行
执行 brew services start nginx 即可启动,访问 http://localhost:8080/ 表示启动成功。
也可以通过 ps -ef | grep nginx 命令来查看 Nginx 进程。
3)重启
Nginx 配置文件修改后,建议先执行 nginx -t 命令测试下文件是否无误,修改后一定要保存重启 nginx -s reload 才会生效。
四、Nginx 配置
可以直接修改 nginx.conf ,也可以重新自定义配置文件(我个人通常会针对不同的业务系统,自定义对应的配置文件),通过 nginx.conf 文件的 include 来进行加载。
负载均衡策略:
1)轮询(one by one)
2)weight 加权轮询
3)ip_hash
4)fair(第三方)
5)url_hash(第三方)