Nginx

NGINX 後面的 Dockerized Apache + SSL 作為反向代理

  • April 29, 2016

我有兩個容器,其中一個執行 NGINX 作為其他幾個容器的反向代理。其他容器之一正在執行啟用和配置 SSL 的 Apache。我已經看到了幾個配置範例,據我所知,NGINX 處理證書而不是 Apache,並且僅將其他所有內容通過管道傳輸到某些非 SSL Apache。

現在,我寧願讓 Apache 處理自己的證書,特別是因為它讓我在管理它們時更輕鬆(使用 dockerizedletsencrypt,它從相關的 Apache 容器掛載卷並將證書放在所有正確的位置)。

問題是我找不到 NGINX 的任何範例配置來透明地將所有內容代理到 Apache 容器。

那是因為 nginx 做不到。

它可以終止 SSL 連接,但不能通過。

你至少有兩個選擇:

  1. 將 SSL 證書粘貼在一個很小的 Docker 卷中,該卷在您的letsencrypt 容器和您的 nginx 容器之間共享。當你這樣做的時候,你也可以讓 nginx 攔截 Let’s Encrypt 挑戰,這可能會稍微簡化你的架構。
  2. 使用 haproxy 代替 nginx。與 nginx 不同,haproxy 能夠通過 SSL 連接(並執行在容器化設置中有用的各種其他事情)。請注意,這需要 SNI 支持,因此無法支持 SNI 的古老 Web 客戶端無法訪問此類站點。

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