Estoy intentando integrar Tomcat con Apache. Mi objetivo es redirigir todas las solicitudes con
http://localhost/myapp
ahttp://localhost:8080
Seguí esta guía: http://tomcat.apache.org/tomcat-8.0-doc/proxy-howto.html
Mi httpd.conf
aspecto es así:
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
Mi server.xml en apache-tomcat se ve así:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" proxyPort="80" />
Ahora, cuando pruebo la URL http://localhost/myapp
, da 503 Service Unavailable
error.
Tanto Tomcat como Apache están en funcionamiento. La URL http://localhost:8080
funciona bien.
¿Puede haber algún problema con los permisos de archivo?
Para tomcat
el usuario y el grupo son root/root
y para httpd
, el usuario y el grupo sonapache/apache
¿Me estoy perdiendo algo o lo estoy haciendo mal?
La versión de Httpd es 2.4.6 y la versión de Tomcat es 8.0
Los registros de error httpd:
[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
¡Resuelto!
La respuesta está aquí: http://sysadminsjourney.com/content/2010/02/01/apache-modproxy-error-13permission-denied-error-rhel/
ProxyPass*
líneas no podía usar mi nombre de servidor real y en su lugar necesitaba usarlocalhost
mi dirección IP, por ejemplo,ProxyPass / http://localhost/
funcionó peroProxyPass / http://example.com/
no lo hizo.Respuestas:
(Respondido por el OP en una edición de pregunta. Convertido en una respuesta de wiki de la comunidad. Consulte Pregunta sin respuestas, pero problema resuelto en los comentarios (o extendido en el chat) )
El OP escribió:
Que es un enlace a un blog que explica:
Si este es el problema, se puede resolver ejecutando:
Y para obtener una fuente de información más definitiva, consulte https://wiki.apache.org/httpd/13PermissionDenied
fuente
esto funcionó para mí:
fuente
ProxyPass / http:// 1.2.3.4:1234
aProxyPass / http://localhost:1234
(igualmente hecho para ProxyPassReverse), no sé por qué sucedió esto hoy. UnattendedUpdate no instaló cosas relacionadas con Apache y no se ejecutó hoy.Resolver problema de inmediato, está relacionado con la seguridad interna
Nosotros, SnippetBucket.com, que trabaja para Enterprise Linux RedHat, encontramos que el servidor httpd no permite que se ejecute el proxy, ni localhost o 127.0.0.1, ni ningún otro dominio externo.
Como se encontró la investigación en el registro del servidor
El registro de auditoría encontró un problema de puerto similar
Debido a la seguridad interna predeterminada de Linux, esta causa, ahora para arreglar (temporal)
Resolver problema permanente
fuente
En la versión 7.5.1804 de CentOS Linux, pudimos hacer que esto funcione editando / etc / selinux / config y cambiando la configuración de SELINUX así:
fuente