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

相关推荐
七夜zippoe19 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥19 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
Fcy64821 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满21 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠21 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
主机哥哥21 小时前
阿里云OpenClaw部署全攻略,五种方案助你快速部署!
服务器·阿里云·负载均衡
Harvey90321 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技1 天前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀1 天前
Linux环境变量
linux·运维·服务器
zzzsde1 天前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器