Nginx健康检查自定义检查路径(非根路径)

Nginx官方提供的模块中,默认没有对负载均衡后端节点健康检查模块,必须使用第三方模块以打补丁形式安装使用,所以推荐使用Tengine

ngx_http_upstream_check_module

该模块可以为Tengine提供主动式后端服务器健康检查的功能,1.40+以上默认开启

upstream report {
        server 10.96.6.65:8080 weight=1  ;
        server 10.96.6.66:8080 weight=1  ;
        check interval=15000 rise=2 fall=3 timeout=5000 type=http;
        check_http_send "HEAD / HTTP/1.0\r\n\r\n";
        check_http_expect_alive http_2xx http_3xx;
      }

    server {
        listen 80;
        server_name localhost;
        location / {
                 root   html;
                 proxy_pass http://report;
                 proxy_set_header Host $host;
                 proxy_set_header X-Forwarded-For $remote_addr;
                 index index.jsp index.html index.htm;
        }

以上配置将针对后端 http://IP:8080/做健康检测,但有问题的是,我们的服务不一定都是/结尾,有时需要加后缀才能访问到资源。比如,如果不在后端tomcat配置上下文路径那么(test.war)正常访问路径就是http://IP:8080/test,对于非根访问上述配置健康检查就一定都是error状态。
check_http_send字段 HEAD后面的 / 就是路径的配置,与其对应的正确能被识别到的地址为"HEAD /test/raqsoft/center/centerIndex.jsp HTTP/1.0\r\n\r\n",/后面可以为项目中的某个url只要能请求到就可以

upstream report {
        server 10.96.6.65:8080 weight=1  ;
        server 10.96.6.66:8080 weight=1  ;
        check interval=15000 rise=2 fall=3 timeout=5000 type=http;
        check_http_send "HEAD /test/raqsoft/center/centerIndex.jsp HTTP/1.0\r\n\r\n";#增加绝对路径
        check_http_expect_alive http_2xx http_3xx;
      }
指令说明
interval向后端发送的健康检查包的间隔
rise如果连续成功次数达到rise_count,服务器就被认为是up
fall如果连续失败次数达到fall_count,服务器就被认为是down
timeout后端健康请求的超时时间
typetcp/http/mysql
check_http_send可以配置http健康检查包发送的请求内容,推荐采用"HEAD"
check_http_expect_aliveHTTP回复的成功状态,默认认为2XX和3XX的状态是健康的
weight权重值越高,被请求频率越高
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值