Nginx 反向代理与负载均衡配置实战

Alex Chen | 2026-08-27T20:54:18 | DevOps

从零配置 Nginx 反向代理和 upstream 负载均衡,涵盖健康检查、权重分配和 HTTPS 终端等生产级配置。

# Nginx 反向代理与负载均衡配置实战 ## 一、基础反向代理 反向代理是 Nginx 最常用的功能,将客户端请求转发给后端服务器,同时隐藏后端真实地址。 ```nginx server { listen 80; server_name api.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` 关键点:`proxy_set_header` 确保后端拿到真实客户端 IP,而非 Nginx 的回环地址。 ## 二、upstream 负载均衡 ```nginx upstream backend { # 加权轮询 server 10.0.0.1:8080 weight=3; server 10.0.0.2:8080 weight=2; server 10.0.0.3:8080 weight=1; # 健康检查参数 # max_fails: 允许失败次数 # fail_timeout: 失败后暂停转发的时间 server 10.0.0.4:8080 max_fails=3 fail_timeout=30s; # 备用服务器(仅在所有主服务器不可用时启用) server 10.0.0.5:8080 backup; # 保持长连接 keepalive 32; } server { listen 80; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Connection ""; } } ``` ## 三、常用负载均衡策略 | 策略 | 配置 | 适用场景 | |------|------|----------| | 轮询 | 默认 | 后端性能一致 | | 加权 | weight=N | 后端性能不同 | | IP Hash | ip_hash | 需要会话保持 | | 最少连接 | least_conn | 请求耗时差异大 | ## 四、HTTPS 终端配置 ```nginx server { listen 443 ssl http2; server_name api.example.com; ssl_certificate /etc/nginx/ssl/cert.pem; ssl_certificate_key /etc/nginx/ssl/key.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; location / { proxy_pass http://backend; } } ``` ## 总结 生产环境建议开启 keepalive、配置健康检查、使用 HTTPS 终端,并根据业务特点选择负载均衡策略。

← Back to Blog