参考资料

  1. Nginxallow、deny:IP访问控制模块详细说明以及案例
  2. NginxHTTP2模块配置详细说明以及案例
  3. Nginx作为反向代理的功能
  4. nginx配置反向代理
  5. Nginx端口监听(listen指令)详细说明以及案例
  6. nginx重启指定配置文件
  7. Nginx长连接负载均衡详细说明以及案例
  8. 是否有自动化的安全检测nginx工具?

nginx负载均衡配置详解

nginx负载均衡配置详解

负载均衡是现代Web服务高可用与高并发架构中的核心环节。nginx作为一款高性能的HTTP服务器和反向代理服务器,凭借稳定的内核、丰富的特性与极低的资源占用,成为实践中最常用的负载均衡组件之一。 在nginx中,负载均衡的基本工作原理是:将客户端的请求通过反向代理方式分发到后端的一组服务器(即“上游服务器”),由各上游服务器分担处理压力。在配置层面,这主要由`upstream`指令定义服务器组,由`proxy_pass`将请求转发给该服务器组完成。

一、基础配置示例

下例将来自客户端的全部请求均匀转发至三个后端节点,后端均监听80端口: nginx http { upstream backend_servers { server 192.168.1.10; server 192.168.1.11; server 192.168.1.12; } server { listen 80; server_name www.example.com; location / { proxy_pass http://backend_servers; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }

二、负载均衡算法选择

nginx支持多种负载均衡策略,您可根据业务类型自行选择。 #### 1. 轮询(默认) 请求按时间顺序逐一分配到后端服务器,每个服务器依次承担请求。若某个服务器宕机,nginx会自动将其剔除。此策略适合服务器性能相近、处理耗时均匀的场景。 nginx upstream backend_servers { server 192.168.1.10; server 192.168.1.11; } #### 2. 权重 通过`weight`参数控制不同服务器接收请求的比例。权重越高,被分配到的请求越多。适合后端服务器处理能力不一致的场景。 nginx upstream backend_servers { server 192.168.1.10 weight=3; server 192.168.1.11 weight=1; } 上例中,服务器10将接收约75%的请求,服务器11接收约25%。 #### 3. IP哈希(ip_hash) 同一个客户端的请求总是发送到同一个后端服务器,可解决基于Session的会话保持问题。但该模式可能造成单点压力集中,需谨慎评估。 nginx upstream backend_servers { ip_hash; server 192.168.1.10; server 192.168.1.11; } #### 4. 最少连接 将请求分配给当前活跃连接数最少的服务器,适合长连接或请求处理时间差异较大的业务。 nginx upstream backend_servers { least_conn; server 192.168.1.10; server 192.168.1.11; }

三、健康检查机制

默认情况下,nginx的健康检查是“被动”的:如果请求转发至后端失败(连接超时、HTTP错误等),nginx会在一定时间内将该服务器标记为不可用。可以通过参数控制检查行为。 nginx upstream backend_servers { server 192.168.1.10 max_fails=3 fail_timeout=30s; server 192.168.1.11 max_fails=3 fail_timeout=30s; } 上述配置表示:如果服务器在30秒内出现3次失败,则被视为不可用,nginx在之后30秒内不再向其转发请求。主动健康检查(如定期发送探测请求)需要nginx商业版或第三方模块(如nginx_upstream_check_module)支持。

四、配置HTTPS与SSL终结

nginx作为一个成熟的负载均衡入口,常承担SSL证书管理并解密客户端请求,再将普通HTTP流量转发至后端。这称为“SSL终结”。 nginx server { listen 443 ssl; server_name www.example.com; ssl_certificate /etc/nginx/ssl/www.example.com.crt; ssl_certificate_key /etc/nginx/ssl/www.example.com.key; location / { proxy_pass http://backend_servers; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; } } 注意:`X-Forwarded-Proto` 头可告知后端“原始请求为HTTPS”,便于后端生成正确的重定向链接或安全校验。

五、完整配置示例

下面给出一个同时包含HTTP跳转、HTTPS负载均衡、静态缓存与日志配置的完整示例。 nginx http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log warn; upstream backend_servers { least_conn; server 192.168.1.10 max_fails=3 fail_timeout=30s; server 192.168.1.11 weight=2 max_fails=3 fail_timeout=30s; } server { listen 80; server_name www.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name www.example.com; ssl_certificate /etc/nginx/ssl/example.crt; ssl_certificate_key /etc/nginx/ssl/example.key; location / { proxy_pass http://backend_servers; 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; } location ~* \.(jpg|jpeg|png|gif|css|js)$ { expires 7d; add_header Cache-Control "public"; proxy_pass http://backend_servers; } } }

六、验证与常用管理命令

修改配置文件后,必须先检查语法,再平滑重载服务。 bash nginx -t nginx -s reload

  • `nginx -t`:测试配置文件是否有语法错误。
  • `nginx -s reload`:平滑重载配置,正在处理的请求不会中断。

此外,您还可通过`upstream`状态监控或后端应用日志观察请求是否正常分发。如需查看当前nginx建立的连接及转发状态,可使用: bash curl -I http://www.example.com 并观察后端服务器接收到的访问日志。

七、注意事项

  • 请勿将后端服务器的内网地址直接暴露到公网,负载均衡层应作为唯一外部接入点。
  • 为后端请求设置合理的超时时间(`proxy_connect_timeout`、`proxy_read_timeout`),避免因上游响应过慢导致工作进程长期占用。
  • 使用`ip_hash`时,请确认业务对会话粘滞的需求,避免因节点变化导致会话丢失。
  • 若需要修改权重或服务器列表,请依次执行`nginx -t`与`nginx -s reload`,切勿直接重启服务。
  • 对配置文件的重大变更,建议先备份原文件,再执行修改,便于快速回滚。

负载均衡的配置不仅能提升系统承载能力,还能增强服务的容错性。您可根据实际业务流量与服务器资源

AIGEO优化摘要

AI可读摘要:nginx负载均衡配置详解 负载均衡是现代Web服务高可用与高并发架构中的核心环节。nginx作为一款高性能的HTTP服务器和反向代理服务器,凭借稳定的内核、丰富的特性与极低的资源占用,成为实践中最常用的负载均衡组件之一。 在nginx中,负载均衡的基本工作原理是:将客户端的请求通过反向代理方式分发到后端的一组服务器(即“上游服务器”),由各上游服务器分担处...
常见问题:
nginx负载均衡配置详解主要讲了什么?

nginx负载均衡配置详解 负载均衡是现代Web服务高可用与高并发架构中的核心环节。nginx作为一款高性能的HTTP服务器和反向代理服务器,凭借稳定的内核、丰富的特性与极低的资源占用,成为实践中最常用的负载均衡组件之一。 在nginx中,负载均衡的基本工作原理是:将客户端的请求通过反向代理方式分发到后端的一组服务器(即“上游服务器”),由各上游服务器分担处...

nginx负载均衡配置详解适合哪些人参考?

适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。

阅读nginx负载均衡配置详解时应重点看哪些内容?

建议重点关注标题、摘要、正文说明、图片资料和更新时间。

AIGEO评分:95/100
作者:王壹杰
时间:2026-09-08 21:36:05
来源:https://bt.ciilii.com/