nginx的反向代理upstream
一、安装nginx
查看这篇博客 https://www.cnblogs.com/zrl66/p/14118063.html
二、负载均衡upstream
下面就是访问www.qwe.com域名反向代理,然后请求转到upstream backend权重配置,根据配置进行访问。
http { ...... upstream backend { server www.abc.net:433 weight=1;#这里默认为80端口,如果使用ssl访问则需要加433端口 server 120.20.30.40 weight=1; server nginx2 weight=2;# docker容器的内部访问 server nginx4 weight=2; } server { listen 80; # http #listen 443 ssl; # https (可以混合http一起用) server_name www.qwe.com; location / { #请求根目录 proxy_pass http://backend; #这里写upstream proxy_redirect off; #重定向 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } }
三、upstream的server服务配置
若配置好upstream多个server时,发生故障时会自动去除该server的权重访问。
http{ ...... upstream backend { server www.abc.net:433 weight=1;#若该服务为外部项目,则无法正常访问 server 120.20.30.40 weight=1; server nginx2 weight=2; #nginx2关闭时,则会移除该服务权重 server nginx4 weight=2; } }
四、总结
在 Nginx 的上下文中,权重配置是应用于 upstream
块中定义的后端服务器组的,而不是跨不同的 Nginx 服务器实例。每个 Nginx 服务器实例管理自己的 upstream
块和权重配置,这些配置不会自动跨多个 Nginx 服务器同步或共享。
负载均衡器(如 HAProxy)通常支持更复杂的负载均衡策略,包括基于权重的分发、健康检查、会话保持等。你可以在负载均衡器上配置权重,以便根据需要将流量分配到不同的 Nginx 服务器。
如果你正在使用 Nginx 开源版,并希望跨多个服务器实现负载均衡,你可能需要考虑使用像 Keepalived 这样的工具与 Nginx 结合使用,或者升级到 Nginx Plus,它提供了内置的负载均衡功能。然而,请注意,这些解决方案可能需要额外的配置和管理。