Nginx 负载均衡的实现

1. 机器准备

|-------|------------|
| 客户端 | 10.0.0.205 |
| nginx | 10.0.0.206 |
| web1 | 10.0.0.203 |
| web2 | 10.0.0.204 |

2. nginx 服务配置

下载 nginx

[root@ubuntu2204 ~]# apt install nginx -y

编辑配置文件,将请求分发到后端服务器

[root@ubuntu2204 ~]# vim /etc/nginx/conf.d/load_balance.conf

upstream backend_servers {

server 10.0.0.203:8081 weight=2; # 权重为 2

server 10.0.0.204:8082 weight=1; # 权重为 1

}

server {

listen 81;

location / {

proxy_pass http://backend_servers;

proxy_set_header Host $host;

}

}

检查配置

[root@ubuntu2204 ~]# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

重启 nginx 服务

[root@ubuntu2204 ~]# systemctl restart nginx.service

3. 后端服务器准备

创建第一个后端服务

[root@ubuntu2204 ~]# mkdir -p /var/www/backend1

[root@ubuntu2204 ~]# echo "Backend Server 1" > /var/www/backend1/index.html

[root@ubuntu2204 ~]# python3 -m http.server 8081 --directory /var/www/backend1 &

创建第二个后端服务

[root@ubuntu2204 ~]# mkdir -p /var/www/backend2

[root@ubuntu2204 ~]# echo "Backend Server 2" > /var/www/backend2/index.html

[root@ubuntu2204 ~]# python3 -m http.server 8082 --directory /var/www/backend2 &

验证后端服务是否正常运行

[root@ubuntu2204 ~]# curl http://10.0.0.203:8081

Backend Server 1

[root@ubuntu2204 ~]# curl http://10.0.0.204:8082

Backend Server 2

4. 测试负载均衡

[root@ubuntu2204 ~]# for i in {1..10};do curl http://10.0.0.206:81;done

Backend Server 2

Backend Server 1

Backend Server 1

Backend Server 2

Backend Server 1

Backend Server 1

Backend Server 2

Backend Server 1

Backend Server 1

Backend Server 2

5. 健康检查

停止一个服务,测试nginx是否能检测到异常,并合理分发请求

[root@ubuntu2204 ~]# pkill -f "python3 -m http.server 8081"

客户端继续访问后端服务

[root@ubuntu2204 ~]# for i in {1..10};do curl http://10.0.0.206:81;done

Backend Server 2

Backend Server 2

Backend Server 2

Backend Server 2

Backend Server 2

Backend Server 2

Backend Server 2

Backend Server 2

Backend Server 2

Backend Server 2

相关推荐
纷飞梦雪2 小时前
使用chroot预安装软件到ubuntu22中
linux·运维·ubuntu
jiarg6 小时前
linux 内网下载 yum 依赖问题
linux·运维·服务器
yi个名字7 小时前
Linux第一课
linux·运维·服务器
菜鸟xy..7 小时前
linux 基本命令教程,巡查脚本,kali镜像
linux·运维·服务器·kali镜像·巡查脚本·nmtui
暴躁的小胡!!!7 小时前
Linux权限维持之协议后门(七)
linux·运维·服务器·网络·安全
安 当 加 密7 小时前
中小企业Radius认证服务器的低成本高安全解决方案
运维·服务器·安全
dxaiofcu8 小时前
双网卡电脑,IP地址漂移
linux·服务器·网络
Macle_Chen8 小时前
Mac服务器上创建Docker并安装宝塔环境
服务器·macos·docker
ChinaRainbowSea8 小时前
Linux: Centos7 Cannot find a valid baseurl for repo: base/7/x86_64 解决方案
java·linux·运维·服务器·docker·架构
snpgroupcn9 小时前
ECC升级到S/4 HANA的功能差异 物料、采购、库存管理对比指南
运维·安全·数据库架构