Nginx

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

  • September 6, 2018

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

我查看了諸如上游負載平衡和 proxy_next_upstream 設置之類的設置,但它似乎並不是我真正想要的。知道如何為我的場景配置 nginx 嗎?謝謝。

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

您將需要使用 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;
   }
}

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

完整的文件在這裡

引用自:https://serverfault.com/questions/929500