我正在使用 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/