https://blog.csdn.net/u011202188/article/details/88802035

https://blog.csdn.net/u011277123/article/details/78869824

 

目的: 通过配置max_fails、fail_timeout来达到当一台服务器访问出现非200时可以跳转到另一台服务器
操作: 配置nginx.conf文件 具体配置如下

upstream report{
server localhost1:18080 max_fails=10 fail_timeout=60s;
server localhost1:28080 max_fails=10 fail_timeout=60s;
server localhost2:18080 max_fails=10 fail_timeout=60s;
server localhost2:28080 max_fails=10 fail_timeout=60s;
#ip_hash;
}
1
2
3
4
5
6
7
现象:并没有什么卵用,如果一台服务器挂掉,nginx依然会分发到那台。
原因:

max_fails=number 设定Nginx与服务器通信的尝试失败的次数。在fail_timeout参数定义的时间段内,如果失败的次数达到此值,Nginx就认为服务器不可用。在下一个fail_timeout时间段,服务器不会再被尝试。 失败的尝试次数默认是1。设为0就会停止统计尝试次数,认为服务器是一直可用的。你可以通过指令proxy_next_upstream、 fastcgi_next_upstream和 memcached_next_upstream来配置什么是失败的尝试。 默认配置时,http_404状态不被认为是失败的尝试。

而我们恰恰就是访问404就给分发到那台倒霉的服务器了

location / {
proxy_pass http://tomcatserver1;
index index.html index.htm;
# proxy_next_upstream
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_connect_timeout 20s;
proxy_read_timeout 20s;
proxy_send_timeout 20s;
}

1
2
3
4
5
6
7
8
9
10
proxy_next_upstream : error # 和后端服务器建立连接时,或者向后端服务器发送请求时,或者从后端服务器接收响应头时,出现错误 timeout # 和后端服务器建立连接时,或者向后端服务器发送请求时,或者从后端服务器接收响应头时,出现超时 invalid_header # 后端服务器返回空响应或者非法响应头 http_500 # 后端服务器返回的响应状态码为500 http_502 # 后端服务器返回的响应状态码为502 http_503 # 后端服务器返回的响应状态码为503 http_504 # 后端服务器返回的响应状态码为504 http_404 # 后端服务器返回的响应状态码为404 off # 停止将请求发送给下一台后端服务器
———————
作者:天下布武の信长
来源:CSDN
原文:https://blog.csdn.net/u011202188/article/details/88802035
版权声明:本文为博主原创文章,转载请附上博文链接!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注