阳江网络问政平台 周报,广州网站运营十年乐云seo,研发网站要多久,营销型wordpress模板下载1. 背景
使用Nginx代理后端服务#xff0c;有时候某些服务是不能使用多台负载均衡#xff0c;但又想保障高可用#xff0c;所以采用主备模式#xff0c;记录如下#xff1a;
2. 参考
nginx 负载均衡Nginx-负载均衡-后端状态max_conns、down、backup、max_fails、fail_t…1. 背景
使用Nginx代理后端服务有时候某些服务是不能使用多台负载均衡但又想保障高可用所以采用主备模式记录如下
2. 参考
nginx 负载均衡Nginx-负载均衡-后端状态max_conns、down、backup、max_fails、fail_timeoutNginx负载均衡详解_nginx负载均衡配置详解
3. 环境
Ubuntu 22.04三台虚拟机 虚机Virtual-Machine-114配置Nginxnginx version: nginx/1.18.0 (Ubuntu)虚机Virtual-Machine-203启动后端服务虚机Virtual-Machine-205启动后端服务
4. 部署
4.1 配置Nginx
虚机Virtual-Machine-114 安装nginx
apt install nginx查找nginx配置文件路径
whereis nginx# whereis 执行结果
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz添加虚拟主机
cd /etc/nginx/conf.d vim py_server.conf # 定义upstream upstream python_server {# server指令指定后端服务器的IP地址和端口server 172.31.1.114:8084 down; # 不参加负载均衡server 172.31.1.203:8083 max_fails5 fail_timeout60s; # 当检查后端服务5次失败每1秒检查一次判定后端服务不可用然后60秒内不再检查。server 172.31.1.205:8085 backup; # 备份节点在所有提供服务节点均不可用时启用}# 定义serverserver {# 监听端口8080listen 8080;server_name localhost;location / {# 代理转发服务转发至upstream python_serverproxy_pass http://python_server;}}4.2 配置后端服务
虚机Virtual-Machine-203创建html文件 写入 “This is Server master, IP 172.31.1.203”
rootVirtual-Machine-203:/home/sj-test1/html# echo This is Server master, IP 172.31.1.203 serverinfo.html 虚机Virtual-Machine-203启动服务
# 监听端口与上述配置一致
python3 -m http.server 8083虚机Virtual-Machine-205创建html文件 写入 “This is Server backup, IP 172.31.1.205”
rootVirtual-Machine-205:/home/sj-test1/html# echo This is Server backup, IP 172.31.1.205 serverinfo.html 虚机Virtual-Machine-205启动服务
# 监听端口与上述配置一致
python3 -m http.server 80854.3 重启Nginx服务
虚机Virtual-Machine-114重启nginx服务
service nginx restart5. 测试
5.1 直接访问后端服务
访问http://172.31.1.203:8083/serverinfo.html服务正常 - 访问http://172.31.1.205:8085/serverinfo.html服务正常
5.2 访问Nginx代理服务 Nginx默认转发到172.31.1.203的后端服务上 关闭虚机Virtual-Machine-203上的后端服务 再次访问Nginx已转发到172.31.1.205backup的后端服务上 - 重新启动虚机Virtual-Machine-203上的后端服务60秒后Nginx再次转发到172.31.1.203
6. 总结
通过配置Nginx配置文件定义upstream中每个后端Server的状态可以实现后端服务的主备负载均衡。在上述测试中使用的是默认轮询算法。注意ip_hash算法不支持backup状态定义。