Apache-2.4
Apache ProxyPass Docker 容器返回 503
我被困在容器化虛擬主機上。設置如下:
mydomain.com
Ubuntu VPS(digitalOcean,用於上下文),Docker 預安裝
- Apache容器(反向代理),來賓埠 80 到主機 80
- Web-app 容器(執行 apache),來賓埠 80 到主機 8081
Apache 執行良好,apache 資訊頁面顯示在 mydomain.com 和 web-app 顯示在 mydomain.com:8081
問題是試圖通過 ProxyPass sub.mydomain.com 為 mydomain.com:8081 提供服務
我在Apache容器中設計了以下站點可用/sub.mydomain.com.conf。
<VirtualHost *:80> ServerName sub.mydomain.com ProxyPreserveHost on ProxyRequests off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass "/" "http://localhost:8081/" retry=0 ProxyPassReverse "/" "http://localhost:8081/"
但是,sub.mydomain.com 返回 503 錯誤。
我還使用 digitalOcean 添加了以下 DNS 記錄: - CNAME:*.mydomain.com 是 mydomain.com 的別名 - A:sub.mydomain.com 指向
$$ DROPLET IP $$ 我也試過:替換’localhost’:
ProxyPass "/" "http://localhost:8081/" retry=0 ProxyPassReverse "/" "http://localhost:8081/"
使用mydomain.com和DROPLET IP以及
$$ gateway $$從Apache容器
route
內部執行返回的 ip 。更改為這些值會產生相同的 503 錯誤,或者導致頁面不斷載入,既不返回錯誤也不返回請求的頁面。我不知道接下來要嘗試什麼,感謝您的幫助。有很多不同的設置,我認為更有經驗的人可能能夠指出我哪裡出錯了。提前致謝!
在代理容器中,您不能使用 localhost:8081 作為代理地址。localhost 實際上是容器本身的環回地址,而不是您的主機伺服器,並且那裡沒有監聽埠 8081(導致 503)。
我的建議是僅將 docker 用於您的服務,並使用標準的 apache(甚至更好的 nginx)進行代理。