• 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,就能解决问题。

      

  • 相关阅读:
    tcp三次握手和四次挥手
    tcp/ip五层协议
    osi七层模型
    函数与模块间作用域的区别
    简易版学生选课系统
    用pathon实现计算器功能
    python三大神器之生成器
    python三大神器之迭代器
    用python实现购物车功能
    正则表达式用法简介
  • 原文地址:https://www.cnblogs.com/lmyau/p/9159583.html
Copyright © 2020-2023  润新知