Nginx健康检查自定义检查路径(非根路径)
Nginx官方提供的模块中,默认没有对负载均衡后端节点健康检查模块,必须使用第三方模块以打补丁形式安装使用,所以推荐使用Tengine
ngx_http_upstream_check_module
该模块可以为Tengine提供主动式后端服务器健康检查的功能,1.40+以上默认开启
1 | upstream report { |
以上配置将针对后端 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只要能请求到就可以
1 | upstream report { |
| 指令 | 说明 |
|---|---|
| interval | 向后端发送的健康检查包的间隔 |
| rise | 如果连续成功次数达到rise_count,服务器就被认为是up |
| fall | 如果连续失败次数达到fall_count,服务器就被认为是down |
| timeout | 后端健康请求的超时时间 |
| type | tcp/http/mysql |
| check_http_send | 可以配置http健康检查包发送的请求内容,推荐采用”HEAD” |
| check_http_expect_alive | HTTP回复的成功状态,默认认为2XX和3XX的状态是健康的 |
| weight | 权重值越高,被请求频率越高 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 liujxu!











