Centos

httpd 不提供來自 tomcat 的相對 url,為什麼不呢?

  • August 10, 2016

CentOS 7伺服器中,我試圖設置httpd為充當reverse proxyfor tomcat。從我httpd輸入的意義上說,我執行得很完美,http/mydomain.com它提供了位於指定DocumentRoot. 我也可以完美tomcat執行,當我輸入. 該文件將所有未經身份驗證的使用者重定向到url 模式,以便他們可以在使用該站點之前登錄。這在. 但是,當我註釋掉並添加and時,我在瀏覽器中收到以下錯誤消息: tomcat``war``http/my.server.ip:8080``war``/login``tomcat``DocumentRoot``ProxyPass``ProxyPassReverse

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安裝。

將 a 附加/到您的ProxyPass兩條線,因為它似乎tomcat重定向到login而不是/login. 採用:

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

引用自:https://unix.stackexchange.com/questions/176052