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/
(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
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