2015-10-13 97 views
1

我有多台运行在给定机器上的Web服务器(Apache,Tomcat,自定义Python服务器)。正如标准设置一样,我已经在端口80上监听Apache。为了访问我的其他服务器中的一个通过此端口,我设置一个的ProxyPass在Apache的是这样的:如何将Apache ProxyPass设置为覆盖父ProxyPass的子目录?

ProxyPass/http://[mydomainname]:8880/ 
ProxyPassReverse/http://[mydomainname]:8880/ 

它的工作原理。当您浏览到没有端口规范(因为默认为80)的域名时,您将无法访问Apache根目录,而是透明地重定向到侦听端口8880的计算机上另一台服务器(Twisted服务器)的根目录。

这是问题所在。看来我已经阻止了现在到达我的Apache文件的任何内容。有没有办法来覆盖各种子目录的根代理传递?例如,如果您浏览到mydomain/test,我可以让它像我没有代理服务器一样工作,而不是将它路由到端口8880服务器上的路径上?

回答

3

我在SO线程上找到了答案:ProxyPass and DocumentRoot on one domain

在根ProxyPass指令之前,只需添加一个ProxyPass排除和一个目录别名。注意:为每个要公开的Apache子目录重复。

ProxyPass /MySubDirectory ! 
Alias /MySubDirectory /var/www/html/MySubDirectory 
+0

它救了我。 –