对于Tomcat 8,使用mod_proxy返回503服务不可用的Httpd

我正在尝试将Tomcat与Apache集成。 我的目标是通过http://localhost/myapp将所有请求redirect到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/

(由OP在问题编辑中回答)转换为社区维基答案。查看问题没有答案,但问题解决了问题(或扩展了聊天) )

该OP写道:

答案在这里: http : //sysadminsjourney.com/content/2010/02/01/apache-modproxy-error-13permission-denied-error-rhel/

这是一个链接到博客,解释:

默认情况下,RHEL / CentOS上的SELinux提供了这种function,以便httpd进程无法启动出站连接,这正是mod_proxy所要做的。

如果这是问题,可以通过运行来解决:

  /usr/sbin/setsebool -P httpd_can_network_connect 1 

有关更明确的信息来源,请参阅https://wiki.apache.org/httpd/13PermissionDenied

这对我工作:

 ProxyRequests Off ProxyPreserveHost On RewriteEngine On <Proxy http://localhost:8123> Order deny,allow Allow from all </Proxy> ProxyPass /node http://localhost:8123 ProxyPassReverse /node http://localhost:8123