Nginx上游健康检查模块

时间:2014-08-25 16:04:37

标签: linux nginx

是否有人在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.

3 个答案:

答案 0 :(得分:2)

我正在寻找Amazon ELB提供的简单健康检查。能够在LB中添加实例,具有健康检查机制来删除错误的实例。

所以这是我的选择。

  1. https://github.com/yaoweibin/nginx_upstream_check_module

  2. https://github.com/openresty/lua-resty-upstream-healthcheck

  3. 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; }

    Source

答案 1 :(得分:1)

有一个上游检查模块的分支,其中包含1.5.12+和1.7 +

的更新

https://github.com/yaoweibin/nginx_upstream_check_module

答案 2 :(得分:0)

您可能不想在此花钱,但值得指出NGINX的premium version具有健康状况检查