在互联网服务中,负载均衡是一种常见的提高系统可用性和扩展性的方法,Nginx 是一个非常流行的开源 Web 服务器软件,它也可以作为反向代理和负载均衡器,下面将详细介绍如何配置 Nginx 双机负载均衡。
(图片来源网络,侵删)
环境准备
假设我们有两台服务器,它们的 IP 地址分别是:
Server1: 192.168.1.10
Server2: 192.168.1.11
这两台服务器上都已经安装了 Nginx,并且都运行着相同的 Web 应用。
安装 Nginx
在两台服务器上安装 Nginx 的过程略过,可以参照 Nginx 官方文档或使用系统的包管理器进行安装。
配置 Nginx 负载均衡器
我们需要另外一台服务器或虚拟机作为负载均衡器,同样安装 Nginx,以下是负载均衡器上的 Nginx 配置步骤。
1. 打开 Nginx 配置文件
通常 Nginx 的主配置文件位于 /etc/nginx/nginx.conf
,或者在 /etc/nginx/sitesavailable/
目录下的某个文件。
2. 配置 upstream
在 http 块中定义一个名为 web_servers 的 upstream,包含两个 server 指令,分别指向两台 Web 服务器的 IP 地址和端口(通常是 80)。
http { upstream web_servers { server 192.168.1.10; server 192.168.1.11; } ... }
3. 配置 server
在 server 块中,监听一个端口(80),然后在 location / 中配置 proxy_pass 指向上面定义的 upstream。
server { listen 80; location / { proxy_pass http://web_servers; } }
4. 启动 Nginx
保存配置文件后,重新加载或重启 Nginx 以使配置生效。
sudo service nginx reload 或者 sudo service nginx restart
至此,Nginx 双机负载均衡的基本配置已经完成,默认情况下,Nginx 会使用轮询(roundrobin)算法来分配请求到不同的后端服务器,这意味着每个新的请求会被依次分配给列表中的下一个服务器。
高级配置
1. 权重配置
如果两台服务器的性能不同,我们可以通过在 server 指令中添加 weight
参数来调整它们的权重。
upstream web_servers { server 192.168.1.10 weight=3; server 192.168.1.11 weight=1; }
在这个例子中,Server1 将接收三倍于 Server2 的请求量。
2. 健康检查
Nginx 支持通过 health_check
指令来进行后端服务器的健康检查,这可以帮助自动排除故障节点。
upstream web_servers { server 192.168.1.10 max_fails=2 fail_timeout=30s; server 192.168.1.11 max_fails=2 fail_timeout=30s; }
在这个配置中,如果一个服务器连续失败次数达到 max_fails
指定的值,它将在接下来的 fail_timeout
时间内被标记为不可用。
Nginx 双机负载均衡的配置相对简单,但提供了强大的功能来满足不同的需求,通过调整 upstream 配置,可以实现更复杂的负载均衡策略,包括基于 IP 哈希、最少连接等,Nginx 社区活跃,有许多第三方模块可以进一步扩展其功能,在生产环境中部署前,建议进行充分的测试以确保一切按预期工作。
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/426684.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除