El proxy Apache no funciona para un puerto localhost

16

Tengo Apache 2.2.15 ejecutándose en el puerto 80 y quiero usar el proxy de un motor servlet en el puerto localhost 8983. Tengo la instalación ejecutándose en otro servidor, pero me mudé a una máquina CentOS 6. No funciona en la nueva máquina. Mi configuración de host virtual:

ProxyRequests Off

<Proxy *>
   Orden negar, permitir
   Permitir de todos
</Proxy>

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

Puedo acceder al puerto 8983 si uso un navegador e ir directamente a él (y no voy a través del proxy Apache), pero no puedo conectarme a él si voy al servidor Apache.

Puedo cambiar lo que se está representando a algo como http://slashdot.org y Slashdot se representa con éxito (por lo que sé que es capaz de proxy en general).

Encendí el inicio de sesión de depuración en Apache y esta es la transacción:

[Dom 22 de abril 16:47:04 2012] [depuración] mod_proxy_http.c (56): proxy: HTTP: URL de canonicalización // localhost: 8983 /
[Dom 22 de abril 16:47:04 2012] [depuración] proxy_util.c (1506): [cliente 184.39.79.7] proxy: http: trabajador encontrado http: // localhost: 8983 / para http: // localhost: 8983 /
[Dom 22 de abril 16:47:04 2012] [depuración] mod_proxy.c (998): Ejecutando el controlador http del esquema (intento 0)
[Dom 22 de abril 16:47:04 2012] [depuración] mod_proxy_http.c (1962): proxy: HTTP: URL de publicación http: // localhost: 8983 /
[Dom 22 de abril 16:47:04 2012] [depuración] proxy_util.c (2011): proxy: HTTP: ha adquirido conexión para (localhost)
[Dom 22 de abril 16:47:04 2012] [depuración] proxy_util.c (2067): proxy: conexión http: // localhost: 8983 / a localhost: 8983
[Dom 22 de abril 16:47:04 2012] [depuración] proxy_util.c (2193): proxy: conectado / a localhost: 8983
[Dom 22 de abril 16:47:04 2012] [depuración] proxy_util.c (2444): proxy: HTTP: fam 10 socket creado para conectarse a localhost
[Dom 22 de abril 16:47:04 2012] [depuración] proxy_util.c (2455): (13) Permiso denegado: proxy: HTTP: intento de conexión a [:: 1]: 8983 (localhost) falló
[Dom 22 de abril 16:47:04 2012] [depuración] proxy_util.c (2444): proxy: HTTP: socket fam 2 creado para conectarse a localhost
[Dom 22 de abril 16:47:04 2012] [error] (13) Permiso denegado: proxy: HTTP: error al intentar conectarse a 127.0.0.1:8983 (localhost)
[Dom 22 de abril 16:47:04 2012] [error] ap_proxy_connect_backend deshabilita al trabajador para (localhost)
[Dom 22 de abril 16:47:04 2012] [depuración] proxy_util.c (2029): proxy: HTTP: ha lanzado la conexión para (localhost)
[Dom 22 de abril 16:47:04 2012] [depuración] mod_proxy_http.c (56): proxy: HTTP: URL de canonicalización //localhost:8983/favicon.ico
[Dom 22 de abril 16:47:04 2012] [depuración] proxy_util.c (1506): [cliente 184.39.79.7] proxy: http: trabajador encontrado http: // localhost: 8983 / para http: // localhost: 8983 / favicon.ico
[Dom 22 de abril 16:47:04 2012] [depuración] mod_proxy.c (998): Ejecutando el controlador http del esquema (intento 0)
[Dom 22 de abril 16:47:04 2012] [depuración] mod_proxy_http.c (1962): proxy: HTTP: URL de publicación http: // localhost: 8983 / favicon.ico
[Dom 22 de abril 16:47:04 2012] [depuración] proxy_util.c (1949): proxy: HTTP: reintentando al trabajador para (localhost)
[Dom 22 de abril 16:47:04 2012] [error] proxy: HTTP: conexión deshabilitada para (localhost)

No sé qué son los enchufes fam 10 o fam 2. ¿Alguien tiene alguna idea sobre por qué no está representando mi puerto alternativo?

¡Gracias!

ksclarke
fuente
El proxy Apache solo permitirá que el tráfico HTTP o HTTPS lo atraviese.
ionFish

Respuestas:

7

Aquí está la solución para su problema:

Para activar este booleano, simplemente tiene que usar esta línea (permisos de raíz)

setsebool -P httpd_can_network_connect on

o

sudo setsebool -P httpd_can_network_connect on

Espero que ayude. Consulta aquí: https://wiki.centos.org/TipsAndTricks/SelinuxBooleans

Mchoeti
fuente
11

Resolví mi problema:

Si lo hago: sestatus -b | grep httpd

Puedo ver httpd_can_network_connectesoff

La solución es escribir: togglesebool httpd_can_network_connect

ksclarke
fuente
44
No estoy seguro de dónde toggleseboolviene (no en mi CentOS7-minimal) y la web sugiere que incluso si tiene togglesebool solo los valores "en memoria" se cambian " . Pero setsebool -P httpd_can_network_connect=1funcionó para mí; -P para que sobreviva un reinicio. Gracias por la pista!
jwd630
1

Asegúrese de que el puerto 8080 esté escuchando ejecutando el siguiente comando

netstat -tlpn

Si no, reinicie el servidor jenkins

sudo /etc/init.d/jenkins start

Debería funcionar ahora. Espero eso ayude

Ajeet Khan
fuente