阿帕契用例

阿帕契用例

我使用 Apache 使用 SSL 憑證在我的家庭伺服器上的連接埠 443 上為全球多個網站提供服務。昨晚我安裝了一個 Linux 二進位文件,該二進位檔案僅在透過其設定檔定義的連接埠上為網站提供服務。我不可能讓 Apache 直接為該網站提供服務。

所以這個網站託管在http://127.0.0.1:8081/但我想將它隱藏在 Apache 443 後面,以便我可以通過https://myserver.duckdns.org/webapp/

到目前為止,我已經在我的網站設定檔中嘗試過此操作,但它沒有起作用:

ProxyRequests off
<Proxy *>
        allow from all
</Proxy>

RewriteEngine On
RewriteRule ^/(.*) /webapp/$1 [P]

<Location /webapp/>
        ProxyPass http://127.0.0.1:8081/
        ProxyPassReverse http://127.0.0.1:8081/
</Location>

知道我該怎麼做嗎?

我以為我可以使用 ProxyPass 和 RewriteRules 來做到這一點,但我似乎無法讓它正常工作。

非常感謝!

答案1

您的重寫規則 a) 目標錯誤,2) 是多餘的。

RewriteRule with[P]設計用作選擇到 ProxyPass,而不是與它一起。 [P] 規則的重寫目標將是遠端 Web 應用程式 URL,而不是本機 URL。例如,您可以使用這個:

RewriteRule ^/webapp/(.*) http://127.0.0.1:8081/$1 [P]

或者這:

ProxyPass /webapp/ http://127.0.0.1:8081/

或者這:

<Location /webapp/>
    ProxyPass http://127.0.0.1:8081/
</Location>

(注意:Apache 文件建議盡可能使用 ProxyPass。)

你的<Proxy *>塊也是不必要的,因為它只適用於向前代理,客戶端指定代理目標(您已停用)。

相關內容