【发布时间】:2014-10-27 23:08:12
【问题描述】:
我正在尝试将 Tomcat 与 Apache 集成。我的目标是重定向所有请求
http://localhost/myapp 到 http://localhost:8080
我遵循了这个指南:http://tomcat.apache.org/tomcat-8.0-doc/proxy-howto.html
我的httpd.conf 看起来像这样:
Include conf.modules.d/*.conf
LoadModule proxy_module modules/mod_proxy.so
ProxyPass /myapp http://localhost:8080 retry=0 timeout=5
ProxyPassReverse /myapp http://localhost:8080
我在 apache-tomcat 中的 server.xml 看起来像这样:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" proxyPort="80" />
现在当我尝试 url http://localhost/myapp 时,它给出了 503 Service Unavailable 错误。
Tomcat 和 Apache 都已启动并正在运行。 URL http://localhost:8080 工作正常。
文件权限有问题吗?
对于tomcat,用户和组是root/root,对于httpd,用户和组是apache/apache
是我遗漏了什么还是我做错了什么?
Httpd版本是2.4.6,Tomcat的版本是8.0
httpd 错误日志:
[proxy:error] [pid 19905] (13)Permission denied: AH00957: HTTP: attempt to connect to 127.0.0.1:8080 (localhost) failed
[proxy:error] [pid 19905] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 0s
[proxy_http:error] [pid 19905] [client ::1:51615] AH01114: HTTP: failed to make connection to backend: localhost
解决了!
答案在这里:http://sysadminsjourney.com/content/2010/02/01/apache-modproxy-error-13permission-denied-error-rhel/
【问题讨论】:
-
感谢您的提示。我发现这个sysadminsjourney.com/content/2010/02/01/… 解决了这个问题
-
最好去掉重试和超时选项并检查
-
FWIW,我收到 503 错误但超时。结果发现,对于我的
ProxyPass*行,我不能使用我的实际服务器名,而是需要使用localhost或我的IP 地址,例如ProxyPass / http://localhost/有效,但ProxyPass / http://example.com/无效。