Ich versuche, Tomcat in Apache zu integrieren. Mein Ziel ist es, alle Anfragen mit http://localhost/myapp
an umzuleiten
http://localhost:8080
Ich habe diese Anleitung befolgt: 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 versuche http://localhost/myapp
, gibt es einen 503 Service Unavailable
Fehler.
Sowohl Tomcat als auch Apache sind betriebsbereit. Die URL http://localhost:8080
funktioniert gut.
Kann es ein Problem mit Dateiberechtigungen geben?
Für tomcat
den Benutzer und die Gruppe sind root/root
und für httpd
, der Benutzer und die Gruppe sindapache/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/
ProxyPass*
Leitungen meinen tatsächlichen Servernamen nicht verwenden konnte und stattdessen entwederlocalhost
oder meine IP-Adresse verwenden musste, z. B.ProxyPass / http://localhost/
funktionierte,ProxyPass / http://example.com/
aber nicht.Antworten:
(Vom OP in einer Fragebearbeitung beantwortet. In eine Community-Wiki-Antwort konvertiert. Siehe Frage ohne Antworten, aber Problem in den Kommentaren gelöst (oder im Chat erweitert) )
Das OP schrieb:
Welches ist ein Link zu einem Blog, der erklärt:
Wenn dies das Problem ist, kann es durch Ausführen von:
Eine genauere Informationsquelle finden Sie unter https://wiki.apache.org/httpd/13PermissionDenied
quelle
das hat bei mir funktioniert:
quelle
ProxyPass / http:// 1.2.3.4:1234
zuProxyPass / http://localhost:1234
(ebenfalls für ProxyPassReverse) - ich weiß nicht, warum dies heute passiert ist. UnattendedUpdate hat keine Apache-bezogenen Inhalte installiert und wurde heute nicht ausgeführt.Problem sofort beheben, es hängt mit der inneren Sicherheit zusammen
Wir, SnippetBucket.com, das für Enterprise Linux RedHat arbeitet, haben festgestellt, dass der httpd-Server weder Proxy noch Localhost oder 127.0.0.1 noch eine andere externe Domain ausführen kann.
Wie im Serverprotokoll untersucht gefunden
Das Überwachungsprotokoll hat ein ähnliches Portproblem festgestellt
Aufgrund der internen Standardsicherheit von Linux kann diese Ursache jetzt behoben werden (vorübergehend)
Beheben Sie ein dauerhaftes Problem
quelle
In CentOS Linux Release 7.5.1804 konnten wir dies erreichen, indem wir / etc / selinux / config bearbeiteten und die Einstellung von SELINUX wie folgt änderten:
quelle