將流量重新導向到 Docker 主機時,Nginx 反向代理需要內部連接埠才能運作

將流量重新導向到 Docker 主機時,Nginx 反向代理需要內部連接埠才能運作

我一直在使用一台具有多個 docker 容器的 Linux 主機,其中一個容器運行在Nginx 代理程式管理器(從現在起:NPM),這只是具有友好 UI 的 Nginx。

NPM 公開連接埠 80 和 443,並根據指定的代理規則(常規的舊反向代理配置)將流量重新導向到每個容器。所有容器都被指示連接到橋接 Docker 網絡,以便 NPM 可以輕鬆存取它們。

所有這些都有效。現在我有一個新服務也需要使用 NPM 公開,不同之處在於該服務不在容器上運行,而是在主機上運行,並且可以透過連接埠 3711 存取。

透過進行研究並最終得出以下建議:

extra_hosts:
    - "host.docker.internal:host-gateway"

透過將其新增至 NPM 服務下的 docker-compose 檔案中,您可以允許它到達主機上的任何端口,事實上,透過從 NPM 容器內執行 ping 操作,host.docker.internal我得到了答案。問題是在設定代理規則後,就像我總是做的那樣:

在此輸入影像描述

如果我嘗試透過 ci-server.domain.com 從網路存取服務,則會收到 502。

為什麼需要將內部連接埠新增到網域中?我在容器上運行的所有其他服務都會響應 80/443 並在內部重定向到其連接埠。

相關內容