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

相关推荐
平头哥AI4 小时前
Day 22 _ 包装错误别丢链_%w、errors.Is 与 errors.As
android·服务器·学习·golang·go
新时代牛马5 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
两点王爷6 小时前
解决 Linux 中 version `CXXABI_1.3.8‘ not found 报错
linux·运维·服务器
啦啦啦啦啦zzzz6 小时前
利用RAII机制进行日志的采集
linux·服务器·c++·网络编程·c++20
0+1117 小时前
Linux --线程概念与控制
linux·运维·服务器·jvm
宽海智能仓储物流7 小时前
航发自动化立体库异构系统改造:宽海智能30天联调技术全解析
运维·数据仓库·自动化
鹤落晴春8 小时前
【K8s】从 ConfigMap 到 Argo CD:Kubernetes 配置管理链路
运维·云原生·容器·kubernetes
2601_949499948 小时前
DT‑1414PTZ如何百分百兼容(安华高)HFBR‑1414PTZ
运维·网络·人工智能·科技·光模块
fengyehongWorld8 小时前
Linux 安装frp实现内网穿透
linux·运维·服务器
一技安身9 小时前
【信创】银河麒麟V10服务器使用安装光盘Packages自建本地yum源
linux·运维·服务器