Serwer proxy Apache nie działa dla portu localhost

16

Mam Apache 2.2.15 działający na porcie 80 i chcę proxy silnika serwletu na lokalnym porcie hosta 8983. Mam instalację uruchomioną na innym serwerze, ale przeniosłem się na maszynę CentOS 6. To nie działa na nowej maszynie. Konfiguracja mojego wirtualnego hosta:

ProxyRequests Off

<Proxy *>
   Zamówienie odmów, zezwól
   Pozwól od wszystkich
</Proxy>

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

Mogę uzyskać dostęp do portu 8983, jeśli korzystam z przeglądarki i przechodzę bezpośrednio do niego (i nie przechodzę przez serwer proxy Apache), ale nie mogę się z nim połączyć, jeśli przejdę do / przez serwer Apache.

Mogę zmienić to, co jest proxy na coś takiego jak http://slashdot.org, a Slashdot zostaje pomyślnie proxy (więc wiem, że jest w stanie proxy w ogóle).

Włączyłem logowanie do debugowania w Apache, a to jest transakcja:

[Niedziela, 22 kwietnia 16:47:04 2012] [debugowanie] mod_proxy_http.c (56): proxy: HTTP: kanonizujący adres URL // localhost: 8983 /
[Niedziela 22 kwietnia 16:47:04 2012] [debugowanie] proxy_util.c (1506): [klient 184.39.79.7] proxy: http: znaleziono pracownika http: // localhost: 8983 / dla http: // localhost: 8983 /
[Niedziela 22 kwietnia 16:47:04 2012] [debugowanie] mod_proxy.c (998): Uruchamianie programu obsługi schematów HTTP (próba 0)
[Niedziela 22 kwietnia 16:47:04 2012] [debugowanie] mod_proxy_http.c (1962): proxy: HTTP: serwujący URL http: // localhost: 8983 /
[Nd 22 kwietnia 16:47:04 2012] [debugowanie] proxy_util.c (2011): proxy: HTTP: uzyskał połączenie dla (localhost)
[Niedziela 22 kwietnia 16:47:04 2012] [debugowanie] proxy_util.c (2067): proxy: połączenie http: // localhost: 8983 / z localhost: 8983
[Niedz. 22 kwietnia 16:47:04 2012] [debugowanie] proxy_util.c (2193): proxy: connected / to localhost: 8983
[Niedz. 22 kwietnia 16:47:04 2012] [debugowanie] proxy_util.c (2444): proxy: HTTP: gniazdo fam 10 utworzone w celu połączenia z hostem lokalnym
[Niedziela 22 kwietnia 16:47:04 2012] [debugowanie] proxy_util.c (2455): (13) Odmowa dostępu: proxy: HTTP: próba połączenia z [:: 1]: 8983 (localhost) nie powiodła się
[Niedziela 22 kwietnia 16:47:04 2012] [debugowanie] proxy_util.c (2444): proxy: HTTP: gniazdo fam 2 utworzone w celu połączenia z hostem lokalnym
[Nd 22 kwietnia 16:47:04 2012] [błąd] (13) Odmowa dostępu: proxy: HTTP: próba połączenia z 127.0.0.1:8983 (localhost) nie powiodła się
[Nd 22 kwietnia 16:47:04 2012] [błąd] ap_proxy_connect_backend wyłącza pracownika dla (localhost)
[Niedziela 22 kwietnia 16:47:04 2012] [debugowanie] proxy_util.c (2029): proxy: HTTP: zwolniło połączenie dla (localhost)
[Niedziela, 22 kwietnia 16:47:04 2012] [debugowanie] mod_proxy_http.c (56): proxy: HTTP: canonicalising URL //localhost:8983/favicon.ico
[Niedziela 22 kwietnia 16:47:04 2012] [debugowanie] proxy_util.c (1506): [klient 184.39.79.7] proxy: http: znaleziono pracownika http: // localhost: 8983 / dla http: // localhost: 8983 / favicon.ico
[Niedziela 22 kwietnia 16:47:04 2012] [debugowanie] mod_proxy.c (998): Uruchamianie programu obsługi schematów HTTP (próba 0)
[Niedziela 22 kwietnia 16:47:04 2012] [debugowanie] mod_proxy_http.c (1962): proxy: HTTP: serwujący URL http: // localhost: 8983 / favicon.ico
[Nd 22 kwietnia 16:47:04 2012] [debugowanie] proxy_util.c (1949): proxy: HTTP: ponawianie próby dla (localhost)
[Nd 22 kwietnia 16:47:04 2012] [błąd] proxy: HTTP: wyłączone połączenie dla (localhost)

Nie wiem, co to są gniazda fam 10 lub fam 2. Czy ktoś ma jakieś pomysły na to, dlaczego nie zastępuje mojego alternatywnego portu?

Dzięki!

ksclarke
źródło
Serwer proxy Apache zezwala tylko na ruch przez HTTP lub HTTPS.
ionFish

Odpowiedzi:

7

Oto rozwiązanie twojego problemu:

Aby włączyć tę wartość logiczną, wystarczy użyć tej linii (uprawnienia roota)

setsebool -P httpd_can_network_connect on

lub

sudo setsebool -P httpd_can_network_connect on

Mam nadzieję, że to pomaga. Odnośnik patrz tutaj: https://wiki.centos.org/TipsAndTricks/SelinuxBooleans

Mchoeti
źródło
11

Rozwiązałem problem:

Jeśli zrobię: sestatus -b | grep httpd

Widzę httpd_can_network_connecttooff

Rozwiązaniem jest wpisanie: togglesebool httpd_can_network_connect

ksclarke
źródło
4
Nie jestem pewien, skąd toggleseboolpochodzi (nie na moim CentOS7-minimalnym), a sieć sugeruje, że nawet jeśli masz togglesebool Tylko zmienione są wartości „w pamięci” . Ale setsebool -P httpd_can_network_connect=1działało dla mnie; -P, aby przetrwało ponowne uruchomienie. Dzięki za wskazówka!
jwd630,
1

Upewnij się, że port 8080 nasłuchuje, uruchamiając następujące polecenie

netstat -tlpn

Jeśli nie, uruchom ponownie serwer Jenkins

sudo /etc/init.d/jenkins start

Powinno już działać. Mam nadzieję, że to pomoże

Ajeet Khan
źródło