nginx 反向代理用於高可用性設定?

nginx 反向代理用於高可用性設定?

場景是這樣的,我在兩個互相備份的應用程式伺服器前面有一個nginx反向代理伺服器,我希望nginx首先將所有用戶請求轉發到第一個應用程式伺服器,如果第一個應用程式伺服器宕機,我希望nginx 從那時起將所有用戶請求轉發到第二個應用程式伺服器,直到第二個應用程式伺服器關閉,並且nginx 應恢復將所有用戶請求轉發到第一個應用程式伺服器,依此類推。當然,如果兩個應用程式伺服器都關閉了,那麼 nginx 將回傳錯誤。

我研究了上游負載平衡和 proxy_next_upstream 設定等設置,但它似乎不是我在這裡尋找的。知道如何為我的場景配置 nginx 嗎?謝謝。

答案1

您需要使用 nginxupstream配置來實現這一目標。

upstream mybackend {
    # first app server
    server 192.168.0.1;

    # second app server
    server 192.168.0.2 backup;
}

server {
    ...

    location / {
        proxy_pass http://mybackend;
    }
}

這裡的關鍵是參數,它告訴 nginx 僅在主節點(即未標記的節點)不可用的backup情況下使用該節點。backup

滿的文件在這裡

答案2

經過更多搜尋後,我決定使用 OpenResty (https://openresty.org/)滿足我的需要,特別是 LuaUpstreamNginxModulehttps://github.com/openresty/lua-upstream-nginx-module並使用一些自訂 Lua 腳本,它似乎非常適合我的場景。

相關內容