我现在拥有的是由子域标识的几个虚拟主机,然后代理到如下所示的服务器:
<VirtualHost *:80>
ProxyPass / http://192.168.1.1/
ProxyPassReverse / http://192.168.1.1/
ServerName sub1.example.com
</VirtualHost>
<VirtualHost *:80>
ProxyPass / http://192.168.1.2/
ProxyPassReverse / http://192.168.1.2/
ServerName sub2.example.com
</VirtualHost>相反,我想拥有的是基于example.com/sub1、example.com/sub2等的apache代理。
我试验过的任何东西似乎都不像子域一样有效。我试过使用Alias指令、位置块等,但是它不断地将URL重写到我的浏览器上,这当然不能到达后端机器。如何才能正确地做到这一点?
发布于 2016-01-22 07:33:59
还不清楚你试过什么。我要尝试的第一件事是将/subN简单地代理到后端机器。
<VirtualHost *:80>
ProxyPass /sub1 http://192.168.1.1/
ProxyPassReverse /sub1 http://192.168.1.1/
ProxyPass /sub2 http://192.168.1.2/
ProxyPassReverse /sub2 http://192.168.1.2/
ServerName example.com
</VirtualHost>发布于 2016-01-22 18:38:51
根据URL中的路径选择后端是可能的,也是基本的/常见的。
让真正基于目录的目录变得更加罕见,因为通常在请求被映射到磁盘上的任何位置之前就会进行代理--但是可以使用mod_rewrite和[P]标志来完成。
https://serverfault.com/questions/750971
复制相似问题