nginx如何获取后台服务器的状态?

HAProxy有一个非常好的状态页面,显示哪些Web服务器已启动,哪些在后端停机。 我试图debugging一些问题,需要知道哪些服务器nginx认为是起来,哪些是它认为是closures的。 有没有一个网页,或者你可以configurationnginx的东西,所以当我需要这种types的信息时,我可以打一个url?

谢谢,Dean

有几个模块可能需要检查:

不幸的是,这几乎是不可能的。 vanila nginx没有devise上游的全局状态,所以这个信息对于每个工作进程都是本地的。

看看这个模块看来可能对你有用http://wiki.nginx.org/NginxHttpHealthcheckModule

这个答复迟了一年,但是ustats的nginx模块看起来相当不错:

https://code.google.com/p/ustats/

转移到github https://github.com/0xc0dec/ustats

不幸的是,在1.2之后似乎没有保持,但仍然可以工作。

find一个维护的叉子https://github.com/nginx-modules/ngx_ustats_module

1.7.2补丁仍然完美对抗1.7.4

我正在寻找像Amazon ELB提供的简单的健康检查。 能够在LB中添加实例,具有运行状况检查机制来删除有故障的实例。

所以这是我的select。

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