web-dev-qa-db-fra.com

Httpd retournant le service 503 indisponible avec mod_proxy pour Tomcat 8

J'essaie d'intégrer Tomcat à Apache. Mon but est de rediriger toutes les requêtes avec http://localhost/myapp vers http://localhost:8080

J'ai suivi ce guide: http://Tomcat.Apache.org/Tomcat-8.0-doc/proxy-howto.html

Mon httpd.conf ressemble à ceci:

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

Mon server.xml dans Apache-Tomcat ressemble à ceci:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" proxyPort="80" />

Maintenant, quand j'essaie de l'URL http://localhost/myapp, il donne l'erreur 503 Service Unavailable.

Tomcat et Apache sont opérationnels. L'URL http://localhost:8080 fonctionne bien. 

Peut-il y avoir un problème avec les autorisations de fichiers?

Pour Tomcat, l'utilisateur et le groupe sont root/root et pour httpd, l'utilisateur et le groupe sont Apache/apache.

Est-ce que je manque quelque chose ou est-ce que je le fais mal?

La version Httpd est la 2.4.6 et la version de Tomcat est la 8.0.

Les journaux d'erreur 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

Résolu!

La réponse est ici: http://sysadminsjourney.com/content/2010/02/01/Apache-modproxy-error-13permission-denied-error-rhel/

62
user2354302

(Répondu par le PO lors de l'édition d'une question. Converti en une réponse du wiki de la communauté. Voir Question sans réponse, mais problème résolu dans les commentaires (ou prolongé dans le chat) )

Le PO a écrit:

La réponse est ici: http://sysadminsjourney.com/content/2010/02/01/Apache-modproxy-error-13permission-denied-error-rhel/

Ce qui est un lien vers un blog qui explique: 

SELinux sur RHEL/CentOS par défaut est fourni afin que les processus httpd ne puissent pas initier de connexions sortantes, ce que mod_proxy tente de faire.

Si tel est le problème, vous pouvez le résoudre en exécutant:

 /usr/sbin/setsebool -P httpd_can_network_connect 1

Et pour une source d'information plus définitive, voir https://wiki.Apache.org/httpd/13PermissionDenied

cela a fonctionné pour moi:

ProxyRequests     Off
ProxyPreserveHost On
RewriteEngine On

<Proxy http://localhost:8123>
Order deny,allow
Allow from all
</Proxy>

ProxyPass         /node  http://localhost:8123  
ProxyPassReverse  /node  http://localhost:8123
5
dan

Sur la version 7.5.1804 de CentOS Linux, nous avons pu résoudre ce problème en modifiant/etc/selinux/config et en modifiant les paramètres de SELINUX comme suit:

SELINUX=disabled
0
Paul Cuddihy