Nginx

nginx 重定向/代理,一個域(url)和兩個 IP

  • August 31, 2017

我們想為其中一個 java 應用程序設置故障轉移機制,應用程序在一台伺服器上有 3 個實例,每個實例必須通過不同的 url 訪問,這些 url 已經註冊並可以通過 dns 訪問。在輔助伺服器上我們進行複制(重要的是實例只能在一台物理機器上啟動和執行)因此我們建立輔助伺服器以防主伺服器出現故障,我們想為一個域註冊多個 IP,但由於應用程序是設計為只有一個 IP 註冊到實例 url。多個 ip 設置的另一個問題是 dns 的循環性質。是否可以為一個域註冊兩個 IP 並通過 nginx 或 HAproxy 代理它以僅指向主伺服器?還是其他想法?我的想法是,如果小學出現故障,

我要做的是接受域實際名稱上的傳入流量,然後自己手動進行路由/故障轉移。

IE

example.com > nginx 伺服器 > server1。(如果失敗)> server2.

http {

上游 java-app {
伺服器 $primary-server;
伺服器 $secondary-server 備份;
}

伺服器 {
地點 / {
proxy_pass http://java-app;
proxy_set_header 主機“example.com”;
proxy_next_upstream 錯誤 http_502;
}
}
}

通過使用這種方法,您的後端伺服器無需擔心 DNS。只有 Nginx 會有指向它的 DNS 記錄。你的後端伺服器只需要擔心處理傳入的流量,如果primary-server死了……輔助伺服器將接管!

通過在其中添加主機標頭,您的後端伺服器仍然可以匹配其程式碼中的“主機”標頭。:)

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