服务器负载均衡Nginx:新手也能搞定的Nginx服务器负载
为什么你需要了解服务器负载均衡
当你的网站访问量变大,一台服务器可能扛不住。服务器负载均衡就是把流量分散到多台后端服务器上,让网站更稳定、响应更快。
Nginx 就是一个轻量又强大的工具,用来干这件事非常合适。
即使你完全没接触过运维,也能按照本文一步步搞定。
准备工作:你需要什么
在动手之前,先确认你手上有这些:
- 一台安装了 Linux 系统的服务器(CentOS 7/8 或 Ubuntu 18.04+ 都行)。
- 两个或更多个后端服务(可以是同一台机器上不同端口,也可以是不同机器)。
- 基本的 SSH 登录能力(不会的话,学会用
ssh root@你的IP登录)。 - Nginx 还没有装?不急,下一步马上装。
如果后端服务是测试用的,你可以临时启动两个简单的 HTTP 服务(比如用 Python 的 http.server 模块)。
第一步:安装并启动 Nginx
登录你的服务器,执行以下命令(以 CentOS 为例):
yum install -y nginx
systemctl start nginx
systemctl enable nginxUbuntu 用户用:
apt update && apt install -y nginx
systemctl start nginx
systemctl enable nginx安装完成后,在浏览器访问服务器的公网 IP,看到 Nginx 的欢迎页就说明成功了。
第二步:修改 Nginx 配置文件实现负载均衡
Nginx 的配置文件通常在 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf。
我们编辑一个专门的文件来配置负载均衡。
2.1 编辑配置文件
vim /etc/nginx/conf.d/load-balance.conf2.2 写入以下基础配置
upstream backend {
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 weight=1;
}
server {
listen 80;
server_name _;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
解释一下:upstream定义了一个后端服务器组,这里我们假设本机 8080 和 8081 端口各跑了一个服务。server块监听 80 端口,所有请求都转发给backend组。
2.3 检查配置并重载 Nginx
nginx -t # 检查语法
systemctl reload nginx # 重载配置如果 nginx -t 输出 syntax is ok 和 test is successful,说明配置没问题。
常见踩坑与避坑指南
🔸 后端服务没启动
负载均衡配置好了但访问报 502 错误,通常是因为后端服务器没跑。建议先手动启动后端服务。
比如用 Python 启动两个测试服务:
python3 -m http.server 8080 &
python3 -m http.server 8081 &🔸 防火墙挡住了端口
如果你用的是云服务器,安全组需要放行 80 端口。
本地防火墙也检查一下:
firewall-cmd --add-port=80/tcp --permanent && firewall-cmd --reload🔸 负载均衡策略选错
Nginx 默认是轮询,也可以用 ip_hash 让同一个客户端始终访问同一台后端(适合需要 session 保持的场景)。
配置里加上:
upstream backend {
ip_hash;
server ...
}效果验证:看负载均衡是否生效
方法一:查看日志
在每台后端服务器上记录请求来源,或者观察访问返回的内容是否不同。
方法二:用 curl 连续请求
在服务器本机执行:
for i in {1..10}; do curl -s http://localhost | grep -o ".* " ; done如果两台后端返回的标题不一样,说明流量被轮询分发到了两个后端。
方法三:浏览器多次刷新
如果后端服务返回不同的页面内容(比如显示不同的 IP 或标识),刷新页面可以看到变化。
总结
通过以上步骤,你已经亲手实现了一个简单的 Nginx 服务器负载均衡。
记住:
- 配置的关键是
upstream块和后端服务器地址。 - 每次修改配置后都执行
nginx -t检查语法。 - 后端服务必须正常运行。
如果你正在处理网站高并发问题,先按本文方案搭建起来,再根据实际业务调整策略。
遇到异常时优先回看避坑部分,大部分问题都能解决。