在我的Apache Web服务器中配置反向代理后遇到问题,并且很难找到解决方案,希望其中一人能够提供帮助 .

例:

我正在尝试配置反向代理,以将后端应用程序URL http://appserver/app/映射到我的公共域上的URL https://webserver/app/ .

我注意到,当通过相应的反向代理URL(https://webserver/app/images)访问时,位于http://appserver/app/路径下的任何资源(例如/ app / images)都可以正常提供 .

但是,一些html文件是从后端应用程序服务器根上下文路径(http://appserver/test.html)提供的,当通过反向代理URL访问应用程序时,这些文件的请求返回404错误

在查看chrome dev工具网络跟踪时,我看到Apache正在根据预期从反向代理URL(https://webserver/test.html)的根上下文而不是反向代理路径(https://webserver/app/test.html)提供这些资源 .

我相信这是Apache中的预期行为,但我试图找到一种方法来重写URL以通过反向代理上下文路径https://webserver/app/而不是root来提供这些资源 .

下面是我当前的配置,我知道在配置这种方式时它不会按预期工作,但我已经尝试了几乎所有我能想到的RewriteRule和ProxyPassReverse指令的组合,但无济于事 .

RewriteRule ^/app/(.*)$ http://appserver/app/$1 [P,L] ProxyPassReverse /app/ http://appserver/app/

我也试过以下,没有运气 .

RewriteRule ^/app/(.*)$ http://appserver/$1 [P,L] ProxyPassReverse /app/ http://appserver/

除了基础知识之外,对于Apache来说,我有点像菜鸟,所以如果这是一个愚蠢的问题,我道歉,但我已经看了一遍找到一个解决方案,但仍然没有找到一个:(

任何帮助表示赞赏!

非常感谢