2025年Nginx反向代理与负载均衡配置指南
一、Nginx反向代理基础配置
1. 基础反向代理配置
配置Nginx反向代理,将请求转发到后端应用服务器:
server {
listen 80;
server_name 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_pass指令转发请求,同时设置请求头,让后端服务获取真实客户端IP和协议信息。
2. 代理超时配置
优化代理超时参数,避免长请求超时:
proxy_connect_timeout 30s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;分别设置连接超时、发送超时、读取超时时间,适配不同业务场景的请求时长。
3. 代理缓冲区配置
启用代理缓冲区,提升代理性能:
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 8 4k;
proxy_busy_buffers_size 8k;合理配置缓冲区大小,减少磁盘IO,提升高并发下的代理性能。
二、负载均衡策略配置
1. 轮询策略(默认)
默认轮询策略,按顺序将请求分配到后端服务器:
upstream backend {
server 192.168.1.10:8080;
server 192.168.1.11:8080;
server 192.168.1.12:8080;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}适合后端服务器性能相近的场景,请求均匀分配。
2. 权重轮询策略
根据服务器性能设置权重,性能好的服务器分配更多请求:
upstream backend {
server 192.168.1.10:8080 weight=3;
server 192.168.1.11:8080 weight=2;
server 192.168.1.12:8080 weight=1;
}通过weight参数设置权重,权重越高分配的请求越多。
3. IP哈希策略
根据客户端IP哈希分配服务器,同一客户端始终访问同一后端服务器,解决session共享问题:
upstream backend {
ip_hash;
server 192.168.1.10:8080;
server 192.168.1.11:8080;
}适合需要保持会话的业务场景,如用户登录状态保持。
4. 最少连接策略
将请求分配到当前连接数最少的后端服务器,动态负载均衡:
upstream backend {
least_conn;
server 192.168.1.10:8080;
server 192.168.1.11:8080;
}适合请求处理时长差异大的场景,自动均衡服务器负载。
三、HTTPS与SSL配置
1. SSL证书配置
配置HTTPS,启用SSL加密传输:
server {
listen 443 ssl;
server_name 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;
ssl_prefer_server_ciphers on;
}配置SSL证书路径,启用安全的TLS协议和加密套件,保障传输安全。
2. HTTP强制跳转HTTPS
将所有HTTP请求强制跳转到HTTPS:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}通过301永久重定向,确保所有访问都走加密通道。
3. HSTS配置
启用HSTS,让浏览器强制使用HTTPS访问:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;减少HTTP跳转次数,提升访问安全性和速度。
四、Nginx性能优化
1. 工作进程配置
根据CPU核心数设置工作进程数:
worker_processes auto;
worker_cpu_affinity auto;auto参数自动匹配CPU核心数,每个进程绑定到特定CPU核心,提升性能。
2. 连接数配置
优化单进程最大连接数:
events {
worker_connections 10240;
use epoll;
multi_accept on;
}使用epoll事件模型,提升高并发下的连接处理能力。
3. 文件传输优化
启用高效文件传输:
sendfile on;
tcp_nopush on;
tcp_nodelay on;启用sendfile零拷贝传输,减少内核态与用户态的数据拷贝,提升静态文件传输性能。
五、安全加固配置
1. 隐藏Nginx版本信息
隐藏服务器版本信息,减少攻击面:
server_tokens off;禁止在响应头中显示Nginx版本号,避免攻击者针对特定版本漏洞攻击。
2. 限制请求大小
限制客户端请求体大小,防止大流量攻击:
client_max_body_size 10M;根据业务需求设置最大请求体大小,避免恶意大请求占用服务器资源。
3. 访问控制
通过IP白名单限制敏感路径访问:
location /admin {
allow 192.168.1.0/24;
deny all;
}仅允许内网IP访问后台管理路径,提升系统安全性。
六、总结
2025年Nginx仍是最主流的反向代理和负载均衡软件,掌握基础配置、负载均衡策略、HTTPS配置、性能优化和安全加固,可构建高性能、高可用、高安全的Web服务架构,支撑业务稳定运行。