nginx 做负载均衡如何实现高可用
天蓬老师
天蓬老师 2017-06-10 09:49:33
0
2
720

用nginx实现简单的负载均衡,配置如下


...

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;
        }
        
        ...
    }
}

...

现在的问题是:如果2个tomcat都正常,则nginx能正常分发请求到指定的服务器上,使用轮询的方式,权重也可以起作用,但是如果我把其中一个tomcat给关掉,那么请求就会卡死,因为会有请求被nginx分发到挂掉的服务器上, 这种情况怎么处理,ngxin有对应的解决策略吗?nginx能有办法监控集群服务器的运行状态吗? 怎么配置?

天蓬老师
天蓬老师

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

全部回复(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里面

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!