
我有多個不同的 dockerized 應用程序,每個應用程式都附帶其適當的 Nginx 服務,該服務根據某些規則將流量發送到其容器。
我需要將這些應用程式放在同一台伺服器上,因此我在主機中新增了一個新的 Nginx 來處理 SSL,並將流量轉送到正確的 dockerized Nginx。
問題:可以在主機中使用 Nginx 將流量轉送到多個不同的 dockerized Nginx 嗎?它有任何已知的問題嗎?這會影響效能嗎?
答案1
可以在主機中使用 Nginx 將流量轉送到多個不同的 dockerized Nginx 嗎?
是的,這實際上是一種常見做法。
它有任何已知的問題嗎?
由這個設定本身引起的 - 不。
這會影響效能嗎?
在某種程度上 - 當然:像所有其他負載平衡器(確實如此)一樣,它會在緩衝和 TCP 套接字上增加一些延遲。
答案2
可以在主機中使用 Nginx 將流量轉送到多個不同的 dockerized Nginx 嗎?
是的。這是一種方法。
它有任何已知的問題嗎?
NGINX 的主機實例不是容器化的,這可能會使配置更加困難。另一種常見的方法是讓 docker 容器綁定到端口
80
,並443
處理所有入口流量並將其轉移到相應的容器。最後,其他容器編排系統(例如 Kubernetes)具有內建概念
Ingress
,並允許像在 Docker compose 中配置容器一樣進行配置。 Kubernetes Ingress 的優點是它可以向上/向下擴展到多個伺服器,而 Docker compose 則受到更多限制。這會影響效能嗎?
到達目標容器的額外躍點確實會對效能產生負面影響,但這是常見的事情。