nginx 如何取得後端網路伺服器的狀態?

nginx 如何取得後端網路伺服器的狀態?

HAProxy 有一個非常漂亮的狀態頁面,向我顯示後端哪些網路伺服器已啟動以及哪些網路伺服器已關閉。我正在嘗試調試一些問題,需要知道 nginx 認為哪些伺服器已啟動以及哪些伺服器已關閉。是否有網頁或其他內容可以為 nginx 配置,以便我在需要此類資訊時只需點擊 url 即可?

謝謝,迪恩

答案1

您可能需要查看幾個模組:

答案2

不幸的是,這幾乎是不可能的。 vanila nginx 在設計上沒有上游的全域狀態,因此該資訊對於每個工作進程來說都是本地的。

看看這個模組似乎可能對你有用http://wiki.nginx.org/NginxHttpHealthcheckModule

答案3

這個回應晚了一年,但 nginx 的 ustats 模組看起來相當令人印象深刻:

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

移至githubhttps://github.com/0xc0dec/ustats

不幸的是,1.2 之後似乎不再維護,但可能仍然有效。

找到了一個維護過的叉子https://github.com/nginx-modules/ngx_ustats_module

1.7.2 補丁仍然可以完美地對抗 1.7.4

答案4

我一直在尋找 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; }

相關內容