Apache-2.4

使用 apache proxypass 根據路徑定向到不同的伺服器

  • April 29, 2020

我的預設站點配置中有以下內容:

<VirtualHost *:80>
       ProxyPreserveHost On
       ProxyPass / http://127.0.0.1:8080/
       ProxyPassReverse / http://127.0.0.1:8080/

       ProxyPass /test http://10.0.0.100:8080/test
       ProxyPassReverse /test http://10.0.0.100:8080/test

</VirtualHost>

我有不同的伺服器用於不同的應用程序,但希望它們對最終使用者看起來好像是一個站點。我定義的任何一個 proxypass 定義在單獨使用時都可以正常工作,但是當兩者都沒有註釋時,如上所示,去 /test 只是嘗試打開 127.0.0.1/test

我犯了錯誤,還是有更好的解決方案?

根據Apache 文件,“按照配置順序檢查配置的 ProxyPass 和 ProxyPassMatch 規則。匹配的第一個規則獲勝。”

<VirtualHost *:80>
   ProxyPreserveHost On

   ProxyPass /test http://10.0.0.100:8080/test
   ProxyPassReverse /test http://10.0.0.100:8080/test

   ProxyPass / http://127.0.0.1:8080/
   ProxyPassReverse / http://127.0.0.1:8080/

</VirtualHost>

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