Apache-Proxy funktioniert nicht für einen Localhost-Port

16

Ich habe Apache 2.2.15 auf Port 80 ausgeführt und möchte eine Servlet-Engine auf Localhost-Port 8983 proxen. Ich habe das Setup auf einem anderen Server ausgeführt, bin jedoch auf einen CentOS 6-Computer umgezogen. Es funktioniert nicht auf der neuen Maschine. Meine virtuelle Host-Konfiguration:

ProxyRequests Off

<Proxy *>
   Befehl ablehnen, erlauben
   Erlaube von allen
</ Proxy>

ProxyPass / http: // localhost: 8983 /
ProxyPassReverse / http: // localhost: 8983 /

Ich kann auf Port 8983 zugreifen, wenn ich einen Browser verwende und direkt dorthin gehe (und nicht über den Apache-Proxy), aber keine Verbindung herstellen, wenn ich zum / über den Apache-Server gehe.

Ich kann ändern, was als Proxy für so etwas wie http://slashdot.org verwendet wird, und Slashdot wird erfolgreich als Proxy verwendet (daher weiß ich, dass es im Allgemeinen als Proxy verwendet werden kann).

Ich habe die Debug-Anmeldung in Apache aktiviert und dies ist die Transaktion:

[So 22 Apr 16:47:04 2012] [debug] mod_proxy_http.c (56): Proxy: HTTP: URL kanonisieren // localhost: 8983 /
[So 22 Apr 16:47:04 2012] [debug] proxy_util.c (1506): [client 184.39.79.7] Proxy: http: Worker gefunden http: // localhost: 8983 / für http: // localhost: 8983 /
[So 22 Apr 16:47:04 2012] [debug] mod_proxy.c (998): http-Handler für Schema ausführen (Versuch 0)
[So 22 Apr 16:47:04 2012] [debug] mod_proxy_http.c (1962): Proxy: HTTP: Serving-URL http: // localhost: 8983 /
[So 22 Apr 16:47:04 2012] [debug] proxy_util.c (2011): Proxy: HTTP: hat Verbindung für (localhost) erhalten
[So 22 Apr 16:47:04 2012] [Debug] proxy_util.c (2067): Proxy: Verbindet http: // localhost: 8983 / mit localhost: 8983
[So 22 Apr 16:47:04 2012] [debug] proxy_util.c (2193): Proxy: verbunden / mit localhost: 8983
[So 22 Apr 16:47:04 2012] [debug] proxy_util.c (2444): Proxy: HTTP: Socket fam 10 erstellt, um eine Verbindung zu localhost herzustellen
[So 22 Apr 16:47:04 2012] [Debug] proxy_util.c (2455): (13) Berechtigung verweigert: Proxy: HTTP: Versuch, eine Verbindung zu [:: 1] herzustellen: 8983 (localhost) ist fehlgeschlagen
[So 22 Apr 16:47:04 2012] [debug] proxy_util.c (2444): Proxy: HTTP: Socket fam 2 erstellt, um eine Verbindung zu localhost herzustellen
[So 22 Apr 16:47:04 2012] [Fehler] (13) Berechtigung verweigert: Proxy: HTTP: Versuch, eine Verbindung zu 127.0.0.1:8983 (localhost) herzustellen, fehlgeschlagen
[So 22 Apr 16:47:04 2012] [Fehler] ap_proxy_connect_backend deaktiviert Worker für (localhost)
[So 22 Apr 16:47:04 2012] [debug] proxy_util.c (2029): Proxy: HTTP: hat Verbindung für (localhost) freigegeben
[So 22 Apr 16:47:04 2012] [debug] mod_proxy_http.c (56): Proxy: HTTP: URL kanonisieren //localhost:8983/favicon.ico
[So 22 Apr 16:47:04 2012] [debug] proxy_util.c (1506): [client 184.39.79.7] Proxy: http: Worker gefunden http: // localhost: 8983 / für http: // localhost: 8983 / favicon.ico
[So 22 Apr 16:47:04 2012] [debug] mod_proxy.c (998): http-Handler für Schema ausführen (Versuch 0)
[So 22 Apr 16:47:04 2012] [debug] mod_proxy_http.c (1962): Proxy: HTTP: Serving-URL http: // localhost: 8983 / favicon.ico
[So 22 Apr 16:47:04 2012] [debug] proxy_util.c (1949): Proxy: HTTP: Wiederholung des Workers für (localhost)
[So 22 Apr 16:47:04 2012] [Fehler] Proxy: HTTP: Verbindung deaktiviert für (localhost)

Ich weiß nicht, was FAM 10 oder FAM 2 Sockets sind. Hat jemand eine Idee, warum er nicht an meinen alternativen Port weiterleitet?

Vielen Dank!

ksclarke
quelle
Der Apache-Proxy lässt nur HTTP- oder HTTPS-Datenverkehr durch.
ionFish

Antworten:

7

Hier ist die Lösung für Ihr Problem:

Um diesen Booleschen Wert zu aktivieren, müssen Sie einfach diese Zeile verwenden (Root-Berechtigungen).

setsebool -P httpd_can_network_connect on

oder

sudo setsebool -P httpd_can_network_connect on

Ich hoffe, das hilft. Referenz siehe hier: https://wiki.centos.org/TipsAndTricks/SelinuxBooleans

Mchoeti
quelle
11

Ich habe mein Problem gelöst:

Wenn ich mache: sestatus -b | grep httpd

Ich kann sehen, httpd_can_network_connectistoff

Die Lösung besteht darin, Folgendes einzugeben: togglesebool httpd_can_network_connect

ksclarke
quelle
4
Nicht sicher , wo toggleseboolkommt von (nicht auf meiner CentOS7-minimal) und die Bahn legt nahe , dass selbst wenn Sie haben togglesebool nur die „im Speicher“ Werte geändert“ Aber. setsebool -P httpd_can_network_connect=1Funktionierte für mich,. -P, um es einen Neustart überleben Danke für der Hinweis!
jwd630
1

Stellen Sie sicher, dass Port 8080 empfangsbereit ist, indem Sie den folgenden Befehl ausführen

netstat -tlpn

Wenn nicht, starten Sie den Jenkins-Server neu

sudo /etc/init.d/jenkins start

Es sollte jetzt funktionieren. Ich hoffe es hilft

Ajeet Khan
quelle