簡體   English   中英

Apache 代理背后的 Traefik

[英]Traefik behind Apache proxy

我想尋求一些幫助,我已經與 Traefik 合作了 2-3 個月,我們使用 Docker Swarm 創建了一個基礎設施,在我們的集群中使用了 4 個專用服務器,並使用 Traefik 作為具有域的容器的反向代理。

幾天前,我們的 IT 崩潰了,不得不重新創建它,我們有一個虛擬機,它位於專用服務器上,也處理大量 VM,問題來了。 這個虛擬機沒有任何公共 IP 地址,它位於一個 apache 代理后面,該代理處理 80 上的所有傳入請求並轉發到運行 Traefik 的虛擬機。

我的問題是我們的 IT 正在使用 Traefik,它使用公共 IP 直接連接到互聯網,但我無法配置 Traefik 以在此 Apache 代理后面使用,我總是收到最小的錯誤消息:找不到 404 頁面。

VM 運行 CentOS。

如果有人遇到同樣的問題並解決了解決方案,請回復,我希望 Traefik 可以在 Apache 代理后面工作。 也許我們只是在這個 VM 上缺少一些域/主機名配置,但我仍然不知道該怎么做。

顯然,traefik 前面的 Apache 沒有將Host標頭正確轉發到 traefik。

為了將您的請求代理到正確的后端,traefik 使用標准的 HTTP 標頭Host ,它基本上是最終用戶請求的主機名(他在瀏覽器中輸入的)。

如果您將 apache 放在前面並添加如下代理規則:

ProxyPass / x.y.z.w
ProxyPassReverse / x.y.z.w

其中xyzwxyzw的 IP 地址, Host頭將被 apache 重寫為xyzw

這意味着用戶請求的原始Host將丟失,並且 traefik 將能夠正確代理。

為了讓 Apache 在將調用轉發到代理時保留來自客戶端的Host標頭,您需要添加以下配置:

ProxyPreserveHost On

ProxyPass指令之后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM