CentOS 7 httpd 无法与后端建立连接

CentOS 7 httpd 无法与后端建立连接

在设置为for 的CentOS 7服务器中,我收到一条错误,指示无法连接到。 apache httpd 2.4ssl reverse proxytomcathttpdtomcat如何解决此错误,以便 httpd 提供 tomcat 生成的内容?

ssl_error_log

[Tue Dec 16 20:20:15.007630 2014] [proxy:error] [pid 12784] (111)Connection refused: AH00957: HTTP: attempt to connect to 127.0.0.1:8080 (localhost) failed
[Tue Dec 16 20:20:15.007727 2014] [proxy:error] [pid 12784] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 60s
[Tue Dec 16 20:20:15.007752 2014] [proxy_http:error] [pid 12784] [client client.ip.address:48100] AH01114: HTTP: failed to make connection to backend: localhost

我已阅读该catalina.out文件,它清楚地表明tomcat我运行后成功启动了根应用程序startup.sh。我也读过另一个帖子,这把责任归咎于SELinux。但我确信已经/etc/sysconfig/selinux发生了SELINUX=disabled,所以看来我的问题是由其他原因引起的。

reverse proxy今天早些时候工作得很好。今天在服务器上所做的唯一更改是tomcat多次上传新版本的 root war,然后在restart tomcat每次httpd上传新的 root war 时停止。这可能涉及将shutdown port输入server.xml从 -1 更改为有效的端口号以允许tomcat关闭。

您可以查看完整的ssl.conf 点击此链接。请注意, 是VirtualHost在 中完全定义的ssl.conf,而不是在 中定义的httpd.conf。您还可以阅读完整的server.xml 点击此链接

编辑:

遵循 IanMcGowan 的建议得到了以下结果:

[[email protected] ~]# telnet localhost 8080
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
[[email protected] ~]# GET / HTTP/1.0
<HTML>
<HEAD>
<TITLE>Directory /</TITLE>
<BASE HREF="file:/">
</HEAD>
<BODY>
<H1>Directory listing of /</H1>
<UL>
<LI><A HREF="./">./</A>
<LI><A HREF="../">../</A>
<LI><A HREF=".autorelabel">.autorelabel</A>
<LI><A HREF=".readahead">.readahead</A>
<LI><A HREF="bin/">bin/</A>
<LI><A HREF="boot/">boot/</A>
<LI><A HREF="db/">db/</A>
<LI><A HREF="dev/">dev/</A>
<LI><A HREF="etc/">etc/</A>
<LI><A HREF="home/">home/</A>
<LI><A HREF="lib/">lib/</A>
<LI><A HREF="lib64/">lib64/</A>
<LI><A HREF="media/">media/</A>
<LI><A HREF="mnt/">mnt/</A>
<LI><A HREF="opt/">opt/</A>
<LI><A HREF="proc/">proc/</A>
<LI><A HREF="root/">root/</A>
<LI><A HREF="run/">run/</A>
<LI><A HREF="sbin/">sbin/</A>
<LI><A HREF="srv/">srv/</A>
<LI><A HREF="sys/">sys/</A>
<LI><A HREF="tmp/">tmp/</A>
<LI><A HREF="usr/">usr/</A>
<LI><A HREF="var/">var/</A>
<LI><A HREF="www/">www/</A>
</UL>
</BODY>
</HTML>

我还打开8080测试tomcat是否运行如下:

当我输入http : / / mydomain.comand时http : / / my.ip.address,浏览器没有收到任何内容。当我输入 时https : / / mydomain.com,我收到相同的错误,指出服务不可用。

最后两行catalina.out自从我昨天重新启动服务器以来没有改变,如下:

16-Dec-2014 20:19:35.967 INFO [localhost-startStop-1] org.apache.catalina.start$
16-Dec-2014 20:19:35.970 INFO [main] org.apache.catalina.startup.Catalina.start$ Server startup in 46065 ms

编辑#2:

为了测试 tomcat 是否正在运行,我执行了以下操作:

[[email protected]]# ps aux | grep tomcat
root      6858  0.7 18.5 3826248 1095780 ?     Sl   Dec12  51:03 java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat/endorsed -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start
root     12524  0.2 20.1 3891788 1187888 ?     Sl   Dec15   6:20 java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat/endorsed -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start
root     16404  0.2 15.0 3630784 887836 ?      Sl   Dec16   2:36 java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat/endorsed -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start
root     17987  0.0  0.0 112640   964 pts/0    R+   14:20   0:00 grep --color=auto tomcat

答案1

要解决此问题,首先通过动态设置布尔值进行测试(尚未永久):

/usr/sbin/setsebool httpd_can_network_connect 1

如果有效,您可以对其进行设置,以便更改默认策略,并且此设置将在重新启动后保留:

/usr/sbin/setsebool -P httpd_can_network_connect 1

信用:https://web.archive.org/web/20190313023936/http://sysadminsjourney.com/content/2010/02/01/apache-modproxy-error-13permission-denied-error-rhel/

相关内容