如何将Apache ProxyPass设置为覆盖父ProxyPass的子目录?
问题描述:
我有多台运行在给定机器上的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服务器上的路径上?
答
我在SO线程上找到了答案:ProxyPass and DocumentRoot on one domain。
在根ProxyPass指令之前,只需添加一个ProxyPass排除和一个目录别名。注意:为每个要公开的Apache子目录重复。
ProxyPass /MySubDirectory !
Alias /MySubDirectory /var/www/html/MySubDirectory
它救了我。 –