是否有人在nginx上使用任何健康检查模块。
我们需要的是一个简单的运行状况检查程序,它会对后端节点执行ping操作,如果它没有响应运行状况检查,则会停止向其中一个节点发送流量。
我发现了这个 - https://github.com/cep21/healthcheck_nginx_upstreams
但是后来尝试将其编译为centos非常困难。
如果您能够在linux上成功设置此功能,或者我是否应该使用其他替代运行状况检查模块,请告诉我。
- 错误1 -
[root@SOMESERVER nginx-1.6.1]# patch -p1 < /tmp/healthchecknginx/nginx_upstream_check_module-0.1.9/check_1.2.6+.patch
1 out of 8 hunks FAILED -- saving rejects to file src/http/ngx_http_upstream_round_robin.c.rej
patching file src/http/ngx_http_upstream_round_robin.h
- 错误2 -
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
答案 0 :(得分:2)
我正在寻找Amazon ELB提供的简单健康检查。能够在LB中添加实例,具有健康检查机制来删除错误的实例。
所以这是我的选择。
Nginx还免费提供被动健康检查。它完全符合我的要求,没有花哨的监控,没有重量,没有花哨的路线检查。它会ping服务器并检查200
状态响应。它会以循环方式进行。
fail_timeout
参数设置指定失败尝试次数的时间,并仍然认为服务器不可用。换句话说,服务器在fail_timeout设置的时间间隔内不可用。
max_fails
参数设置在指定时间内应该发生的失败尝试次数,以便仍然认为服务器不可用。
例如:
upstream search {
server 192.168.215.43:9200 max_fails=3 fail_timeout=10s;
server 192.168.171.66:9200 max_fails=3 fail_timeout=10s;
}
答案 1 :(得分:1)
有一个上游检查模块的分支,其中包含1.5.12+和1.7 +
的更新答案 2 :(得分:0)
您可能不想在此花钱,但值得指出NGINX的premium version具有健康状况检查