我正在尝试使用 apache2 为我的本地应用程序 (bittorent sync) 配置代理mod_proxy_html
。我运行本地应用程序的多个实例,每个实例针对不同的用户。要远程访问 Web 界面,我需要重定向地址
sub.example.com/user1
本地应用程序正在监听127.0.0.1:8888
并
sub.example.com/user2
等等127.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>
不幸的是,它并没有按照我预期的那样工作。
答案1
为什么不按用户定义虚拟主机,如 user1.sub.example.com、user2.sub.example.com
你不能定义两次相同的永久重定向在相同的上下文中(这里只有一个虚拟主机)