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,它提供了内置的负载均衡功能。然而,请注意,这些解决方案可能需要额外的配置和管理。

  

  

posted @ 2024-04-12 21:20  Auler  阅读(133)  评论(0编辑  收藏  举报