Nginx

通過子域重定向(nat?)到 docker

  • May 9, 2021

我有多個 docker 應用程序(Minecraft 伺服器、Web 伺服器、數據庫、統一 webkey 等)在 Linux 機器上執行。我們稱這台機器為 example.com。對 example.com 的任何呼叫都將被 Linux 機器接收。有沒有辦法將其子域重定向到在其上執行的不同 docker 實例,例如 mincraft1.example.com goo 到 Minecraft docker1 和 unify.example.com goo 到統一 docker。這沒有在 Linux 機器的 localhost 上映射埠。

我用 nginx 為 HTTP 請求管理了這個,但是你必須指定你想使用的每個埠。我想一次重定向所有埠和協議。技術上將 docker 的 IP 映射到子域。

這可能嗎?我該怎麼做?

我用 nginx 為 HTTP 請求管理了這個,但是你必須指定你想使用的每個埠。我想一次重定向所有埠和協議。技術上將 docker 的 IP 映射到子域。

HTTP(S) 在標頭中包含主機名,以明確允許此類虛擬主機。

然而,其他協議卻沒有。

NAT 和埠轉發發生在不包含任何域資訊的 TCP/IP 或 UDP 數據包上。域名由客戶端系統解析,然後將使用它在數據包中解析到的 IP 來定址它們。

所以不,你不能做你想做的事,除非你的協議支持主機名欄位,或者你有多個 IP - 每個子域一個。

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