zoukankan      html  css  js  c++  java
  • nginx轮询宕机解决

      nginx应对高并发的手段采用集群方法,如果一个服务域名背后的某个服务器发生了宕机,而此时又恰好轮询到了该服务器,那么就会发生长时间的等待,直到浏览器多次尝试后轮询到没有宕机的服务器才能完成一个服务,大大降低了服务器的效率和用户体验度,即相当于宕机的服务器白白占用了几次轮询尝试时间;

      为了解决该问题,案例如下:

        修改nginx.conf文件:

      upstream myserver{
            #ip_hash;
            server 127.0.0.1:8081;
            server 127.0.0.1:8082;
        }
        server{
            listen       81;
            server_name  www.bproject.com;
            location / {
                root   html;
                proxy_pass  http://myserver;
                index  index.html index.htm;
                proxy_connect_timeout 1;
                proxy_send_timeout 1;
                proxy_read_timeout 1;
            }
        }

          通过一个服务名称的location里面配置代理响应超时时间,1表示1秒钟,如果1秒钟没有响应,就把请求按照轮询转发,加快响应处理的时间。

          proxy_connect_timeout:该指令设置与upstream server的连接超时时间,这个超时时间不能超过75秒;

          proxy_send_timeout:这个指令设置了发送请求给upstream服务器的超时时间。超时设置不是为了整个发送期间,而是在两次write操作期间。如果超时后,upstream没有收到新的数据,nginx会关闭连接,默认值为60s;

          proxy_read_timeout:该指令与代理服务器的读取超时时间。它决定了nginx会等待多长时间来获得请求的响应,这个时间不是获得整个response的时间,而是两次reading操作的时间,默认值为60s;

      测试:

        步骤一:配置两个Tomcat,两个端口分别为8081,8082

            

        步骤二:配置nginx.conf文件

            

        步骤三:分别启动Tomcat和nginx

            启动Tomcat:这里需要启动两次Tomcat,一次端口为8082,一次端口为8081

            进入Tomcat文件下的bin目录

              

             使用【./startup.sh】 命令启动  

              

            启动后可使用【ps -ef | grep tomcat 】命令查看当前Tomcat的进程

              

            启动nginx:

            进入nginx文件下的sbin目录

              

            使用【./nginx】命令启动nginx

              

            使用【ps -ef | grep nginx】命令查看当前nginx进程

               

            实现效果:在配置中配置了两个服务器,当其中一台服务器宕机之后,就是轮询到下一台服务器;

  • 相关阅读:
    (十六)分页
    (十五)条件查询
    (十四)hibernate逆向工程
    (十三)信息发布管理
    (十二)系统权限
    (十一)角色管理
    (十)系统异常处理
    (九)表单校验
    POI操作Excel
    (八)头像上传
  • 原文地址:https://www.cnblogs.com/wnwn/p/12290980.html
Copyright © 2011-2022 走看看