So erreichen Sie eine hohe Verfügbarkeit mit Nginx-Lastausgleich
天蓬老师
天蓬老师 2017-06-10 09:49:33
0
2
742

Verwenden Sie Nginx, um einen einfachen Lastausgleich zu implementieren. Die Konfiguration ist wie folgt


...

http{
    ...
    
    upstream mytomcatscluster{
        #ip_hash 在同一台服务器部署了2个tomcat,使用不同的端口
        server 127.0.0.1:8080 weight=2;
        server 127.0.0.1:8180 weight=1;
    }
    
    ...
    
    server{
        ...
        
        # 将所有后端请求分发到我定义的集群服务器上
        location /service/fen/{
            proxy_pass http://mytomcatscluster;
        }
        
        ...
    }
}

...

Das aktuelle Problem ist: Wenn beide Tomcats normal sind, kann Nginx Anfragen normal an den angegebenen Server verteilen. Die Gewichtung kann auch funktionieren, aber wenn ich einen der Tomcats ausschalte, bleibt die Anfrage hängen werden Anfragen von nginx an den ausgefallenen Server verteilt. Wie geht man mit dieser Situation um? Verfügt ngxin über eine entsprechende Lösungsstrategie? Gibt es eine Möglichkeit für Nginx, den Betriebsstatus von Clusterservern zu überwachen? Wie konfiguriere ich?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

Antworte allen(2)
仅有的幸福

upstream 有两个参数 max_fails和fail_timeout,如果某台server在fail_timeout时间内出现了max_fails次连接失败,那么Nginx会认为其已经挂掉了,从而在fail_timeout时间内不再去请求它。
fail_timeout默认为10s,max_fails默认为1。

另外 有个第三方模块 nginx_upstream_check_module 专门用来检测后端server的健康情况

yaoweibin/nginx_upstream_check_module: Health checks upstreams for nginx

https://github.com/yaoweibin/...

过去多啦不再A梦

不用ip_hash的方式,把session存在redis里面

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage