如何将Apache ProxyPass设置为覆盖父ProxyPass的子目录?
我在给定的机器上运行多个web服务器(Apache、Tomcat、自定义Python服务器)。我让Apache监听端口80,这是标准设置。为了通过此端口访问我的另一台服务器,我在Apache中设置了一个ProxyPass,如下所示:如何将Apache ProxyPass设置为覆盖父ProxyPass的子目录?,apache,tomcat,proxypass,Apache,Tomcat,Proxypass,我在给定的机器上运行多个web服务器(Apache、Tomcat、自定义Python服务器)。我让Apache监听端口80,这是标准设置。为了通过此端口访问我的另一台服务器,我在Apache中设置了一个ProxyPass,如下所示: ProxyPass / http://[mydomainname]:8880/ ProxyPassReverse / http://[mydomainname]:8880/ 它起作用了。当您浏览到没有端口规范(因为暗示为80)的域名时,您没有到达Apache根目录
ProxyPass / http://[mydomainname]:8880/
ProxyPassReverse / http://[mydomainname]:8880/
它起作用了。当您浏览到没有端口规范(因为暗示为80)的域名时,您没有到达Apache根目录,而是透明地重定向到机器上另一台服务器(Twisted服务器)的根目录,监听端口8880
问题出在这里。似乎我现在阻止了任何东西访问我的Apache文件。有没有办法覆盖不同子目录的根代理传递?例如,如果浏览到mydomain/test,我是否可以让它像根本没有代理传递一样工作,而不是将其路由到端口8880服务器上的路径?我在SO线程上找到了答案: 在root ProxyPass指令之前,只需添加ProxyPass排除和目录别名。注意:对每个要公开的Apache子目录重复此操作
ProxyPass /MySubDirectory !
Alias /MySubDirectory /var/www/html/MySubDirectory