gpt4 book ai didi

apache - 如何将 Windows 上的 Apache 2.2 重定向到 Tomcat(同一台机器)

转载 作者:行者123 更新时间:2023-11-28 23:20:46 25 4
gpt4 key购买 nike

我花了很多时间试图弄清楚一些看似微不足道的事情,但我对 Apache/Tomcat 的了解不足,这对我来说并不容易。

我被要求将来自端口 80 (Apache) 的请求重定向到端口 8080(Tomcat.. 以及何时可以工作,到应用程序)。

在我改变任何东西之前,localhost:80 会显示“It works”,而 locahost:8080 会显示 Apache 欢迎页面。

我做了以下更改:

  • 在 httpd.conf 文件中取消注释 LoadModule proxy_module modules/mod_proxy.so & LoadModule proxy_http_module modules/mod_proxy_http.so
  • 未注释包括 conf/extra/httpd-vhosts.conf,始终在 httpd.conf 中

在 httpd-vhosts.conf 中,我添加了:

<VirtualHost *:80>
ServerName localhost
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080
ProxyPassReverse / http://localhost:8080
</VirtualHost>

但是当我尝试 http://localhost ,我确实到达了 Apache 欢迎页面,但是所有的 css 样式、图像都丢失了:

Apache welcome page

我知道为什么它不起作用:当我检查我的页面并查看标题时,我看到指向图标的链接例如是 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com