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

相关推荐
布局呆星3 小时前
云服务器上部署单项目/多项目
运维·服务器
盐焗鹌鹑蛋3 小时前
【Linux】缓冲区
linux·运维·服务器
祈禾4 小时前
Redis三大缓存问题与分布式锁
运维·数据库·redis·笔记·分布式·缓存
ltl5 小时前
可观测性存储与成本:采样、下采样、冷热分层
运维
学代码的CJY6 小时前
Linux 库制作与原理:静态库、动态库、ELF 与动态链接完全指南
linux·运维·服务器
沸速存储7 小时前
CPU 和 GPU 核心差别在哪?为什么 AI 训练离不开 GPU
服务器·人工智能·科技·嵌入式硬件·电脑
SatanII7 小时前
403 禁地:Nginx 拒绝所有生者进入
运维·nginx
路由侠内网穿透8 小时前
本地部署企业级快速开发平台芋道管理后台并实现外部访问
运维·服务器·网络·网络协议
basketball6168 小时前
软考中级网络工程师 第4章 无线通信网 备考总结
linux·服务器·网络·网络工程师·软考
yunlaodacom8 小时前
阿里云国际站注册:性能损耗 < 1%!基于 eBPF 的服务器异常预测实战与调优指南
大数据·服务器·阿里云