Nginx健康检查模块,生产还能这样配置( 三 )

  1. 配置实例
server{listen 80;upstream test{server 192.168.3.12:8080 weight=5 max_fails=3 fail_timeout=10s;server 192.168.3.13:8080 weight=5 max_fails=3 fail_timeout=10s;check interval=5000 rise=1 fall=3 timeout=4000 type=http default_down=false;check_http_send "HEAD /test.jsp HTTP/1.0rnrn";check_http_expect_alive http_2xx http_3xx;}location / {proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;proxy_pass http://test;proxy_next_upstream error timeouthttp_500 http_502 http_503;}#健康状态监控location /status {check_status;access_log off;}}
  1. 查看状态
通过xx.xx.xx.xx/status ,查看后端节点的健康状态 。
Nginx健康检查模块,生产还能这样配置

文章插图
 
如果Status 状态为up,则说明节点正常;如果为down,则说明节点异常 。
注意:后端节点端口存在,在一定程度上并不代表节点就是健康的;因此建议使用Http的检测方式 。
总结Nginx的健康检查在一定程度上可以屏蔽后端应用节点的故障,避免影响用户的使用;但是我们最终还是要及时发现问题、解决问题 。
因此我们需要考虑到的问题:
  1. 监控系统如何及时发现哪些节点被Nginx摘除了,以便及时查找问题;
  2. 版本发布过程中,服务重启导致节点被Nginx摘除,如何避免此类告警;
  3. 版本发布过程中,服务重启导致的http、进程或端口报警,如何避免此类告警;
以上都是我们后续运维过程涉及到的问题,在以后的文章中我们再继续寻找答案 。




推荐阅读