nginx主备配置相关

配置示例

upstream tomcatserver{
  server ip:8780 max_fails=2 fail_timeout=30s;
  server ip:8068 max_fails=2 fail_timeout=30s backup;
}
location /usercenter {
  proxy_connect_timeout 1;
  proxy_read_timeout 1;
  proxy_send_timeout 1;
  proxy_next_upstream error timeout http_502 http_503 http_504;
  proxy_pass http://tomcatserver/usercenter;
}

 

ip:8780主机
ip:8068备机

参数解释

backup 参数是指当所有非备机都宕机或者不可用的情况下,就只能使用带backup标准的备机。
max_fails参数的理解:max_fails默认为1,fail_timeout默认为10秒,也就是说,默认情况下后端服务器在10秒钟之内可以容许有一次的失败,如果超过1次则视为该服务器有问题,将该服务器标记为不可用。等待10秒后再将请求发给该服务器,以此类推进行后端服务器的健康检查。
proxy_connect_timeout 参数是连接的超时时间。 设置成1,表示是1秒后超时会连接到另外一台服务器。
proxy_read_timeout 参数是接收数据超时时间, 设置成1, 如果连续的1s内没有收到1个字节, 连接关闭,默认60s。
proxy_send_timeout 参数是发送数据到服务器的超时时间, 设置成1, 如果连续的1s内没有发送1个字节, 连接关闭,默认60s。
proxy_next_upstream 确定在何种情况下请求将转发到下一个服务器,timeout和connect refuse是永远被记录错误状态,而502、500、503、504只有在配置proxy_next_upstream参数之后nginx才会记录这4种HTTP错误到fails中。
语法:proxy_next_upstream [error|timeout|invalid_header|http_500|http_502|http_503|
http_504|http_404|off]

 

 

backup详细介绍:
nginx可通过upstream实现负载均衡,而在upstream中有一个backup参数,该参数的设定会指定一台服务器成为从机,只有当所有的主机挂掉之后才会开始接受请求,在主机启动之后则又回到初始的状态.

配置如下:

upstream tomcatserver {
server 180.76.118.162:8088 backup;
server 180.76.118.162:8089;
server 180.76.118.162:8090;
}
我们指定了端口为8088的服务器为备机,而其他两台服务器为主机

在平时不使用,nginx不会给它转发任何请求。只有当其他节点全部无法连接的时候,nginx才会启用这个节点。
一旦有可用的节点恢复服务,该节点则不再使用,又进入后备状态。

在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续性,提高服务的可靠性。

Nginx 流量镜像使用技巧:https://blog.51cto.com/u_15499328/5255339

posted @ 2022-04-29 10:02  官萧何  阅读(420)  评论(0编辑  收藏  举报