Reverse-Proxy

Apache2反向代理多個位置

  • September 16, 2016

我正在嘗試使用 apache2 為我的本地應用程序(bittorent 同步)配置代理mod_proxy_html。我執行本地應用程序的多個實例,每個實例用於不同的使用者。要遠端訪問網頁界面,我需要重定向地址

sub.example.com/user1到本地應用程序監聽127.0.0.1:8888

sub.example.com/user2127.0.0.1:8889

本地應用程序有一些硬編碼的連結/gui也需要重定向。

在我最近的嘗試中,我設法讓代理為單個使用者執行,如下所示:

<VirtualHost *:80>
ServerName sub.example.com
ProxyRequests Off

ProxyPass /user1 http://127.0.0.1:8888
ProxyPassReverse /user1 http://127.0.0.1:8888
ProxyHTMLURLMap http://127.0.0.1:8888 /user1
Redirect permanent /gui /user1/gui

</VirtualHost>

現在,我想為多個使用者和埠擴展解決方案,例如:

<VirtualHost *:80>
ServerName sub.example.com
ProxyRequests Off

<Location /user1>
   ProxyPass http://127.0.0.1:8888
   ProxyPassReverse http://127.0.0.1:8888
   ProxyHTMLURLMap http://127.0.0.1:8888 /user1
   Redirect permanent /gui /user1/gui
</Location>

<Location /user2>
   ProxyPass http://127.0.0.1:8889
   ProxyPassReverse http://127.0.0.1:8889
   ProxyHTMLURLMap http://127.0.0.1:8889 /user2
   Redirect permanent /gui /user2/gui
</Location>

</VirtualHost>

不幸的是,這並沒有按我的預期工作。

為什麼不按使用者定義虛擬主機,例如 user1.sub.example.com、user2.sub.example.com

您不能在同一上下文中定義兩次相同的永久重定向(這裡只有一個虛擬主機)

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