- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我花了很多时间试图弄清楚一些看似微不足道的事情,但我对 Apache/Tomcat 的了解不足,这对我来说并不容易。
我被要求将来自端口 80 (Apache) 的请求重定向到端口 8080(Tomcat.. 以及何时可以工作,到应用程序)。
在我改变任何东西之前,localhost:80 会显示“It works”,而 locahost:8080 会显示 Apache 欢迎页面。
我做了以下更改:
在 httpd-vhosts.conf 中,我添加了:
<VirtualHost *:80>
ServerName localhost
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080
ProxyPassReverse / http://localhost:8080
</VirtualHost>
但是当我尝试 http://localhost ,我确实到达了 Apache 欢迎页面,但是所有的 css 样式、图像都丢失了:
我知道为什么它不起作用:当我检查我的页面并查看标题时,我看到指向图标的链接例如是 http://mydomain/myApp/images/favicon.ico ,但如果我复制粘贴该链接,我当然找不到该图标,因为它不在 Apache 上,而是在 Tomcat 上(如果这有意义的话)。如果我将端口添加到 URL,那么它将起作用:http://mydomain:8080/myApp/images/favicon.ico
这与此处所述的问题有什么关系:https://serverfault.com/questions/561892/how-to-handle-relative-urls-correctly-with-a-reverse-proxy ?
This is because the tomcat response headers will contain the proxy headers (i.e. the Location header is http://localhost/WebApp rather than http://localhost:8080/WebApp) because ProxyPreserveHost is switched On
所以我把它关掉了:
<VirtualHost *:80>
ServerName localhost
ProxyRequests Off
ProxyPreserveHost Off
ProxyPass / http://localhost:8080
ProxyPassReverse / http://localhost:8080
</VirtualHost>
但是页面还是不能正确显示。
感谢您的意见。
最佳答案
我自己想出了这个。解决方案是在 ProxyPass 行中的地址末尾添加一个/。
据我所知,服务器正试图按字面解析地址,因此当它检查时,比如 webapps 文件夹中的文档页面,它返回一个代理错误,表明它不能解决http://localhost:8080docs .
关于apache - 如何将 Windows 上的 Apache 2.2 重定向到 Tomcat(同一台机器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44166422/
我是一名优秀的程序员,十分优秀!