文章最后更新时间:
【免责声明:本文由AI辅助生成,内容仅供参考,不构成专业建议。】
Nginx反向代理与负载均衡实战:从基础配置到高可用架构
Nginx是最流行的Web服务器和反向代理工具,本文分享Nginx在生产环境中的实战经验。
Nginx核心概念
Worker进程:Nginx使用事件驱动的Worker进程处理请求。一个Worker可以处理上万并发连接。
连接池:上游服务器使用连接池复用TCP连接,减少连接建立开销。
惊群问题:多个Worker竞争同一个连接的问题。Nginx通过accept_mutex解决。
keepalive:与上游服务器的keepalive连接,复用连接减少开销。
反向代理配置
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; proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; }
负载均衡策略
轮询(Round Robin):默认策略,每个请求按顺序分配到不同服务器。适合服务器性能相近的场景。
加权轮询(Weighted Round Robin):按权重分配请求,性能强的服务器权重高。upstream backend { server app1 weight=3; server app2 weight=1; }
最少连接(Least Connections):请求分配到当前连接数最少的服务器。适合请求处理时间差异大的场景。
IP Hash:按客户端IP Hash分配,保证同一客户端请求打到同一服务器。适合需要Session粘性的场景。
URL Hash:按请求URL Hash分配,相同URL打到同一服务器。适合缓存场景。
健康检查配置
被动健康检查:max_fails、fail_timeout。连续失败max_fails次后,服务器被认为不可用。主动健康检查:nginx_upstream_check_module或ngx_http_api_module。定期发送检测请求,自动剔除故障服务器。
SSL/TLS配置
HTTPS配置:listen 443 ssl http2; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; SSL优化:ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL; ssl_prefer_server_ciphers on; session_cache shared:SSL:10m; session_timeout 60m; OCSP Stapling:加速SSL握手,减少客户端等待时间。
缓存配置
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; location / { proxy_cache my_cache; proxy_cache_valid 200 60m; proxy_cache_key $host$request_uri; add_header X-Cache-Status $upstream_cache_status; } 缓存清理:proxy_cache_purge指令或ngx_cache_purge模块。
高可用架构
Keepalived:VRRP协议实现Nginx高可用。主备模式,VIP漂移自动故障转移。
LVS+Nginx:LVS做四层负载均衡,Nginx做七层反向代理。性能和高可用的最佳组合。
DNS轮询:DNS配置多个A记录指向不同Nginx服务器。实现简单的负载均衡和故障转移。
更多技术文章:https://blog.hanyucloud.com | 客服:400-880-3980

















暂无评论内容