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 分钟前
乐迪信息:AI摄像机识别煤矿出入井车辆数量异常检测
大数据·运维·人工智能·物联网·安全
张童瑶5 分钟前
Linux SSH配置密钥文件及免密登录
linux·运维·ssh
roman_日积跬步-终至千里9 分钟前
【Starrocks】StarRocks 排错:`Invalid method name: ‘heartbeat‘`(BE 心跳端口/协议错误)
服务器·网络·php
翼龙云_cloud10 分钟前
腾讯云渠道商:腾讯云快照和镜像备份区别在哪?
运维·服务器·云计算·腾讯云
我命由我1234518 分钟前
Python Flask 开发:在 Flask 中返回字符串时,浏览器将其作为 HTML 解析
服务器·开发语言·后端·python·flask·html·学习方法
YMatrix 官方技术社区29 分钟前
YMatrix 高可用详解:3 种镜像策略在节点宕机时表现有何不同?
运维·数据库·数据仓库·ai·数据库开发·数据库架构·ymatrix
中年程序员一枚37 分钟前
Nginx配置运行python的uvicorn项目
chrome·python·nginx
Elastic 中国社区官方博客41 分钟前
在 Kibana 中可视化你的 Bosch Smart Home 数据
大数据·运维·elasticsearch·搜索引擎·信息可视化·全文检索·kibana
松涛和鸣42 分钟前
34、 Linux IPC进程间通信:无名管道(Pipe) 和有名管道(FIFO)
linux·服务器·c语言·网络·数据结构·数据库
小虾米vivian1 小时前
dmetl5 web管理平台 监控-流程监控 看不到运行信息
linux·服务器·网络·数据库·达梦数据库