it-swarm.com.de

Rückgabe des 503-Dienstes, der mit mod_proxy für Tomcat 8 nicht verfügbar ist

Ich versuche, Tomcat mit Apache zu integrieren. Mein Ziel ist es, alle Anfragen mit http://localhost/myapp an http://localhost:8080 umzuleiten.

Ich folgte dieser Anleitung: http://Tomcat.Apache.org/Tomcat-8.0-doc/proxy-howto.html

Mein httpd.conf sieht so aus:

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

Meine server.xml in Apache-Tomcat sieht folgendermaßen aus:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" proxyPort="80" />

Wenn ich jetzt die URL http://localhost/myapp versuche, wird 503 Service Unavailable-Fehler angezeigt.

Sowohl Tomcat als auch Apache sind in Betrieb. Die URL http://localhost:8080 funktioniert einwandfrei. 

Kann es ein Problem mit Dateiberechtigungen geben?

Für Tomcat sind Benutzer und Gruppe root/root und für httpd sind Benutzer und Gruppe Apache/apache.

Vermisse ich etwas oder mache ich es falsch?

Die Httpd-Version ist 2.4.6 und die Tomcat-Version ist 8.0

Die httpd-Fehlerprotokolle:

[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

Gelöst!

Die Antwort ist hier: http://sysadminsjourney.com/content/2010/02/01/Apache-modproxy-error-13permission-denied-error-rhel/

62
user2354302

(Beantwortet vom OP in einer Fragebearbeitung. In ein Community-Wiki-Antwort konvertiert. Siehe Frage ohne Antworten, aber Problem gelöst in den Kommentaren (oder erweitert im Chat) )

Das OP schrieb:

Die Antwort ist hier: http://sysadminsjourney.com/content/2010/02/01/Apache-modproxy-error-13permission-denied-error-rhel/

Welches ist ein Link zu einem Blog, das erklärt: 

SELinux auf RHEL/CentOS wird standardmäßig ausgeliefert, sodass httpd-Prozesse keine ausgehenden Verbindungen initiieren können. Dies ist genau das, was mod_proxy versucht.

Wenn dies das Problem ist, können Sie das Problem lösen, indem Sie Folgendes ausführen:

 /usr/sbin/setsebool -P httpd_can_network_connect 1

Eine genauere Informationsquelle finden Sie unter https://wiki.Apache.org/httpd/13PermissionDenied

das hat für mich funktioniert:

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
5
dan

In der Version 7.5.1804 von CentOS Linux konnten wir dies durch Editieren von/etc/selinux/config und Ändern der Einstellung von SELINUX wie folgt erreichen:

SELINUX=disabled
0
Paul Cuddihy