Nginx反向代理与负载均衡实战:从基础配置到高可用架构

文章最后更新时间:2026-04-11 11:59:18

【免责声明:本文由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

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容