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

相关推荐
藥瓿亭1 分钟前
K8S认证|CKS题库+答案| 6. 创建 Secret
运维·ubuntu·docker·云原生·容器·kubernetes·cks
2302_809798326 分钟前
【JavaWeb】Docker项目部署
java·运维·后端·青少年编程·docker·容器
嵌入式大圣8 分钟前
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
运维·docker·容器
玩转4G物联网10 分钟前
零基础玩转物联网-串口转以太网模块如何快速实现与TCP服务器通信
服务器·网络·物联网·网络协议·tcp/ip·http·fs100p
派阿喵搞电子29 分钟前
Ubuntu下有关UDP网络通信的指令
linux·服务器·网络
dmy38 分钟前
n8n内网快速部署
运维·人工智能·程序员
程序员JerrySUN1 小时前
全面理解 Linux 内核性能问题:分类、实战与调优策略
java·linux·运维·服务器·单片机
Theodore_10221 小时前
大数据(2) 大数据处理架构Hadoop
大数据·服务器·hadoop·分布式·ubuntu·架构
米粉03051 小时前
深入剖析Nginx:从入门到高并发架构实战
java·运维·nginx·架构
huangyuchi.1 小时前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++