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

相关推荐
wd5i8kA8i6 小时前
自研多线程 SSH 极速文件传输助手(附 GitHub 源码)
运维·ssh·github
Boop_wu6 小时前
[Java 算法] 字符串
linux·运维·服务器·数据结构·算法·leetcode
m0_694845577 小时前
Dify部署教程:从AI原型到生产系统的一站式方案
服务器·人工智能·python·数据分析·开源
菱玖8 小时前
SRC常见漏洞情况分类
运维·安全·安全威胁分析
码云数智-大飞8 小时前
C++ RAII机制:资源管理的“自动化”哲学
java·服务器·php
SkyXZ~8 小时前
Jetson有Jtop,Linux有Htop,RDK也有Dtop!
linux·运维·服务器·rdkx5·rdks100·dtop
黑牛儿9 小时前
MySQL 索引实战详解:从创建到优化,彻底解决查询慢问题
服务器·数据库·后端·mysql
舒一笑9 小时前
一次“翻车”的部署,让我看清了技术、权力和职场的真相
运维·程序员·创业
杨云龙UP10 小时前
Oracle Data Pump实战:expdp/impdp常用参数与导入导出命令整理_20260406
linux·运维·服务器·数据库·oracle
想唱rap10 小时前
线程池以及读写问题
服务器·数据库·c++·mysql·ubuntu