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!
źródło
Odpowiedzi:
Oto rozwiązanie twojego problemu:
Aby włączyć tę wartość logiczną, wystarczy użyć tej linii (uprawnienia roota)
lub
Mam nadzieję, że to pomaga. Odnośnik patrz tutaj: https://wiki.centos.org/TipsAndTricks/SelinuxBooleans
źródło
Rozwiązałem problem:
Jeśli zrobię:
sestatus -b | grep httpd
Widzę
httpd_can_network_connect
tooff
Rozwiązaniem jest wpisanie:
togglesebool httpd_can_network_connect
źródło
togglesebool
pochodzi (nie na moim CentOS7-minimalnym), a sieć sugeruje, że nawet jeśli masztogglesebool
Tylko zmienione są wartości „w pamięci” . Alesetsebool -P httpd_can_network_connect=1
działało dla mnie; -P, aby przetrwało ponowne uruchomienie. Dzięki za wskazówka!Upewnij się, że port 8080 nasłuchuje, uruchamiając następujące polecenie
Jeśli nie, uruchom ponownie serwer Jenkins
Powinno już działać. Mam nadzieję, że to pomoże
źródło