仅限反向代理主页

仅限反向代理主页

我经常使用 Apache 通过 ProxyPass 和 ProxyPassReverse 反向代理到其他服务器。我一直通过顶级文件夹执行此操作。但现在我需要将网站的主页放在新的 CMS 服务器上。

仅反向代理主页(对于请求:GET / HTTP / 1.1)而不影响每个请求的最佳方法是什么?

我想我可以用 ! 指令列出服务器上的每个目录和顶级页面。但肯定有更好的方法。

非常感谢大家的帮助。

答案1

ProxyPass 指令按第一次匹配的顺序进行处理,只需将 CMS 中的一个列在最后即可。例如

ProxyPass /app1 http://app1.example.org/app1
ProxyPassReverse /app1 http://app1.example.org/app1
ProxyPass /app2 http://app2.example.org/app2
ProxyPassReverse /app2 http://app2.example.org/app2

ProxyPass / http://cms.example.org/
ProxyPassReverse / http://cms.example.org/

或者希望有一个运行良好的 CMS,其中只有主登陆页面位于根目录中,而所有脚本、图像和其他内容都位于适当的子目录中:

# Redirect requests to www.example.org/ to www.example.org/index.html
RewriteRule  ^/$                 /index.html

ProxyPass /index.html http://cms.example.org/index.html

ProxyPass /css http://cms.example.org/css
ProxyPassReverse /css http://cms.example.org/css    
ProxyPass /img http://cms.example.org/img
ProxyPassReverse /img http://cms.example.org/img

相关内容