Nginx2026-04-15·8 分钟
Nginx 反向代理与负载均衡
说明 Nginx 反向代理配置、upstream 负载均衡策略与常见优化技巧。
Nginx 反向代理与负载均衡
1. 基本反向代理配置
nginx
upstream backend {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 80;
server_name api.example.com;
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;
}
}2. 常见负载均衡策略
round_robin:默认,按顺序轮询。least_conn:最少连接数。ip_hash:基于客户端 IP 的会话保持。
nginx
upstream backend {
least_conn;
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}3. 健康检查与故障转移
- 内置 Nginx
upstream只能判断连接失败。 - 可使用
ngx_http_healthcheck_module或外部分布式健康检查方案。
nginx
upstream backend {
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8081 max_fails=3 fail_timeout=30s;
}4. HTTPS 与代理头部
nginx
location / {
proxy_pass https://backend;
proxy_ssl_server_name on;
}- 为后端传递
Host、X-Real-IP和X-Forwarded-For。 - 需要
proxy_ssl_server_name on才能使用 SNI。
5. WebSocket 代理
nginx
location /ws/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}6. 负载均衡优化建议
- 对静态资源直接由 Nginx 提供。
- 使用
keepalive缓存后端连接。 - 避免在高峰期频繁
proxy_pass至不稳定后端。
7. 常见排错步骤
nginx -t检查语法。curl -I http://127.0.0.1/验证代理是否正常。- 查看
error.log诊断超时、DNS 或后端连接问题。
Nginx反向代理负载均衡