博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx集群的故障迁移
阅读量:5741 次
发布时间:2019-06-18

本文共 1555 字,大约阅读时间需要 5 分钟。

hot3.png

首先可以肯定的是Nginx在一个tomcat节点完全宕机的情况下,是不会再去把请求分发过去的。

它是由upstream中server的参数决定的

server address [weight=number] [max_fails=number] [fail_timeout=time] [slow_start=time] [backup] [down];

其中max_fails默认为1,fail_timeout=time默认为10s,这两个参数配置起来使用.含义是:在fail_timeout的时间内,nignx与upstream中某个server的连接尝试失败了max_fails次,则nginx会认为该server已经失效。在接下来的 fail_timeout时间内,nginx不再将请求分发给失效的server。

但是如果我写一段延迟非常长的模拟代码会如何呢

@RestControllerpublic class TestController {    @GetMapping("/set")    public String home() throws InterruptedException {        Thread.sleep(600000);        return "Two! Yes";    }}

其配置端口号为9090

配合一段正常代码

@RestControllerpublic class TestController {    @GetMapping("/set")    public String home() {        return "One!"+new Date();    }}

配置端口号为8080

对Nginx的配置为

upstream web_services {

        server       172.18.98.46:9090;
        server       172.18.98.47:8080;
    }

server {

        listen       8090;
        server_name  localhost;

        location ~ /set {

           proxy_pass http://web_services;
        }
        error_page  404              /;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

此时我们访问8090端口,Nginx的负载到8080端口时

One!Fri Feb 15 18:10:26 CST 2019

但是当负载到9090端口时,会无响应。

此时我们需要在nginx增加配置

server {

        listen       8090;
        server_name  localhost;

        location ~ /set {

           proxy_pass http://web_services;
           proxy_connect_timeout       2s;
           proxy_read_timeout          3s;
           proxy_send_timeout          5s;
        }
        error_page  404              /;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

其中proxy_read_timeout 3s指的是当响应超过3秒后,会重新负载到新的Server上去,在我们这里就是9090无法响应,3秒后会负载到8080端口上去,并默认在10秒后才会重新访问9090端口,以此循环。当然这些时间可以根据实际情况自由搭配的。

转载于:https://my.oschina.net/u/3768341/blog/3010684

你可能感兴趣的文章
php分页
查看>>
ORACLE Index Lookup索引访问路径总结
查看>>
SpringMVC学习指南【笔记6】JSTL标签、函数
查看>>
GPS轨迹数据集免费下载资源整理
查看>>
考研?还是直接找工作?
查看>>
ue4 蓝图物体怎么不跟着蓝图动_UE4部分蓝图
查看>>
联通4g满格但是网速慢_为什么手机4G信号明明是满格,网络却很慢,背后的真实原因?...
查看>>
bable怎么使用 eclipse_Java Web轻松学46 - Maven集成到Eclipse中
查看>>
机器人 知乎碧桂园_碧桂园机器人首降淮阳,助力城市文化旅游
查看>>
ae2020不支持的视频驱动程序_音视频PaaS平台基于Windows的抓屏技术
查看>>
图纸打印什么时候用蓝图_工程图纸为什么是蓝图?
查看>>
网页中竖的目录怎么改成横的_骨架隔墙怎么做?
查看>>
查看历史操作记录_git操作方法
查看>>
5怎么选国外节点_房子装修,床垫怎么选?这5家床垫值得买
查看>>
变成一列_Excel一列数据转多行多列,这4条函数公式可以学起来
查看>>
手机超广角拍摄软件_如何用超广角“看开一点”?OPPO官方教学,这些大片装下整个夏天...
查看>>
rip协议中周期性广播路由信息的报文_关于RIP的一点小笔记--华为
查看>>
python range(30)_python的range()函数
查看>>
windows python3 paramiko安装_Python3.3 Paramiko Windows安装错误
查看>>
ref获取元素 vue 删除子元素_vue 添加删除子元素
查看>>