1,nginx 故障处理

NGINX  故障处理
1,什么情况下需要故障处理
   比如连接超时
2,怎么处理?
出现故障的时候,有个幂等算法的概念,会不停的去重试请求其他的服务器
所以,处理数据变更的时候不要用get 方法,get会不停的重新请求 ,post一般不会当然如
服务器直接挂掉了也会重新请求
方案: 1,设置重复请求的总时间,总次数;
       server{
       proxy_red_timeout 10s;
       proxy_next_upstream error timeout;  # 故障转移条件
       proxy_next_upstream_tries 3; # 重试次数
       proxy_next_upstream_timeout 60s;  # 重试的最长时间
       
       
       
       }
       
3,熔断机制   当某台被代理服务器处理请求,出现一定次数的错误(可配置)的情况下
,Nginx 在一定时间(可配置内),不在请求分配给该服务器处理。过来熔断时间后,nginx 会再次尝试分配一次请求给
该服务器处理,如果还是失败,则据需熔断。

Upstream 指令快中 server定义的熔断参数配置:
max_fails= number  -熔断机制的错误次数 阀值(默认为1)
fail_timeout=time   -熔断时间(nginx标记服务器不可用的持续时间,默认为10秒)


配置实例:  server 192.168.1.100 max_fails=3 fail_timeout=10s;

       
       
       
       
       
       
       
       
       
       
       
       
events{} #必写
http{
 #Tomcat 服务器集群
 upstream tomcat_servers{
        #2 个 tomcat
        server 192.168.1.100:8081  weight=3 max_fails=3 fail_timeout=10s;
        server 192.168.1.109: 8082 weight=2 max_fails=3 fail_timeout=10s;
 
 
 }
 
server{
    
       proxy_red_timeout 10s;
       proxy_next_upstream error timeout;  # 故障转移条件
       proxy_next_upstream_tries 3; # 重试次数
       proxy_next_upstream_timeout 60s;  # 重试的最长时间
location /{  #根据用户的url 走不同的流程。 通配
#将代理请求返回的内容作为响应
proxy_set_header Host $http_host;
proxy_pass http://tomcat_servers; 


}      

#静态不变的由 nginx 直接返回,静态的内容和 nginx 放在同一台服务器
location ~ \.(gif|jpg|png|css|js|html)${
 root /data/www;
}


}


}      
       
       
       
       


你可能感兴趣的:(1,nginx 故障处理)