zoukankan      html  css  js  c++  java
  • nginx+tomcat做负载均衡,当某个tomcat宕机,会发生什么情况,如何解决?

    使用两台Tomcat,一台nginx做了一个小实验:

      步骤一:

        当两台tomcat正常运行的情况下,访问http://localhost的速度是很很迅速的,通过修改主页内容也可以观察到是通过负载均衡得到的效果。

      步骤二:

        实验性的将其中一台tomcat服务器关掉(将8080端口的关闭),再查看http://localhost ,会发现效果是这样的:一半的请求反应时间很快,一般的请求反应时间很慢,但是最后都可以得到正确的结果。

      分析:

        出现这个效果的原因是在nginx中有一个参数:proxy_connect_timeout  ,即连接的超时时间,默认超时时间是1分钟。当超过1分钟,才会去连接到另一台服务器,而我们在这一分钟只能苦苦等待。

      解决办法:

        分析出来结果了,解决方法自然就有了。将 proxy_connect_timeout  参数的超时时间改小即可。如下图示例:

      

    server {
             listen 80;
             server_name localhost;
    
             upstream localhost {
                 #这里是在同一台服务器上面进行测试,因此只改变端口号即可
               
                 server localhost:8080 weight=2;
                 server localhost:8081 weight=2;
             }
    
             location / {
                 root html;
                 index index.html index.htm;
                 http://localhost; //可通过域名访问
                
                 proxy_connect_timeout 1; #单位为秒
                 proxy_send_timeout 1;
                 proxy_read_timeout 1;
             }
             ...
    }

      之后重新加载nginx的配置文件,或者重启nginx,就能解决问题。

      

  • 相关阅读:
    关于泛型
    共享几个.net工具类
    关于Guid
    自动更新解决方案
    订阅者模式实例
    好久没有blog了,今日就share一个update program的经验
    杀掉相应数据库的进程
    解决IFrame下无法写Cookie问题
    sql处理死锁
    log4net配置及使用方法
  • 原文地址:https://www.cnblogs.com/lmyau/p/9159583.html
Copyright © 2011-2022 走看看