Apache 反向代理重定向,资产文件夹位于另一条路径

Apache 反向代理重定向,资产文件夹位于另一条路径

我正在使用 Apache2 为我的 tomcat 执行反向代理。

我的域名是https://dev.domain.com重定向至http://127.0.0.1:8080/MyApp

代理没问题,但 tomcat 在根文件夹中有一个资产文件夹(http://127.0.0.1:8080/assets

加载我的 dev.domain.com 页面时,每个要显示的资源元素都出现 404 错误。这是我的 VirtualHost 配置:

<VirtualHost *:443>

    ServerAdmin webmaster@localhost

    proxyRequests Off
    SSLProxyEngine on

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ServerName dev.domain.com

    ProxyPass / http://127.0.0.1:8080/MyApp/
    ProxyPassReverse / http://127.0.0.1:8080/MyApp/

    SSLCertificateFile ....

</VirtualHost>

似乎 MyApp 文件夹中不存在的所有内容都没有正确重定向,您知道我可以这样做吗?

答案1

ProxyPass / http://127.0.0.1:8080/MyApp/

是否将所有对“/”的请求代理到“http://127.0.0.1:8080/MyApp/'。这意味着请求 '/assets' 将转换为 'http://127.0.0.1:8080/MyApp/assets'。我认为你有两个选择:

  • 将“assets”目录移到“MyApp”内
  • 或者为“assets”目录添加单独的 ProxyPass/ProxyPassReverse

    ProxyPass /assets/ http://127.0.0.1:8080/assets/
    ProxyPassReverse /assets/ http://127.0.0.1:8080/assets/
    

相关内容