参考答案:
ngx_http_upstream_module
模块的作用是为Nginx提供反向代理和负载均衡功能,它允许Nginx将客户端请求转发到一个或多个上游服务器(upstream servers)处理,并将结果返回给客户端。该模块在Nginx作为反向代理服务器时起关键作用。
反向代理
将客户端的请求转发到后端服务器处理,比如应用服务器(如Tomcat、Flask)或数据库接口。
负载均衡
实现多台后端服务器的负载均衡,支持多种策略,如轮询、最少连接等。
故障转移
当某个上游服务器不可用时,自动将请求转发到其他可用服务器。
健康检查(部分功能需第三方模块支持)
通过检测后端服务器的状态,动态管理上游服务器的可用性。
ngx_http_upstream_module
的核心配置是在http
块中定义upstream
块,然后在server
块中引用。
在upstream
块中定义后端服务器组:
1upstream backend { 2 server 192.168.1.101:8080; # 单个后端 3 server 192.168.1.102:8080; # 另一个后端 4 server 192.168.1.103:8080; # 更多后端 5}
默认使用**轮询(round-robin)**策略,支持以下负载均衡方法:
1upstream backend { 2 server 192.168.1.101 weight=3; 3 server 192.168.1.102 weight=1; 4}
least_conn
指令)。
1upstream backend { 2 least_conn; 3 server 192.168.1.101; 4 server 192.168.1.102; 5}
1upstream backend { 2 ip_hash; 3 server 192.168.1.101; 4 server 192.168.1.102; 5}
在server
块中通过proxy_pass
引用上游服务器:
1server { 2 listen 80; 3 location / { 4 proxy_pass http://backend; # 引用upstream块 5 } 6}
通过参数配置健康检查和故障恢复:
1upstream backend { 2 server 192.168.1.101 max_fails=3 fail_timeout=30s; # 失败3次,30秒内标记不可用 3 server 192.168.1.102 max_fails=2 fail_timeout=20s; 4}
最近更新时间:2024-12-23