httpd 不提供来自 tomcat 的相对 url,为什么不呢?

httpd 不提供来自 tomcat 的相对 url,为什么不呢?

CentOS 7服务器中,我试图设置httpd为充当reverse proxyfor tomcathttpd从我输入的意义上来说,我运行得很好,http/mydomain.com并且它提供了位于指定DocumentRoot.我还完美地运行了,当我输入 时,tomcattomcat会提供指定的文件。该文件将所有未经身份验证的用户重定向到url 模式,以便他们可以在使用该网站之前登录。这在.但是当我注释掉并添加and时,我在浏览器中收到以下错误消息: warhttp/my.server.ip:8080war/logintomcatDocumentRootProxyPassProxyPassReverse

Proxy Error

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /login.

Reason: DNS lookup failure for: server.ip.address:8009login

VirtualHost的如下:

<VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAlias mydomain.com
    ErrorLog /var/log/httpd/mydomain_com_error.log
    CustomLog /var/log/httpd/mydomain_com_requests.log combined
    ProxyPass / ajp://server.ip.address:8009
    ProxyPassReverse / ajp://server.ip.address:8009
</VirtualHost>

我还确保取消注释以下连接器server.xml

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

server.xml您可以读取位于文件共享站点中的整个文件点击此链接

Apache显然是在与文件交谈tomcat并使用该war文件,因为apache弄清楚了如何重定向到/loginurl 模式。但如何修复我的配置,以便 /login 和其他相对 url 得到正确的服务?

我不确定是否已mod_jk安装。

答案1

将 a 附加/到您的两ProxyPass行,因为它似乎tomcat重定向到login而不是/login。使用:

ProxyPass / ajp://server.ip.address:8009/
ProxyPassReverse / ajp://server.ip.address:8009/

相关内容