Configuration du proxy mod sur le serveur http apache
Je voulais inverser le proxy d'un service web à partir de mon serveur tomcat en utilisant le serveur web apache. J'ai modifié le httpd.conf
LoadModule proxy_module modules/mod_proxy.so
<Directory />
AllowOverride none
Require all denied
</Directory>
ProxyPass /ROOT http://localhost:8080/ROOT
ProxyPassReverse /ROOT http://localhost:8080/ROOT
Mon serveur Tomcat fonctionne sur le port 8080, maintenant quand j'exécute localhost / ROOT, j'obtiens l'erreur 500 Erreur interne du serveur.
Cette dernière entrée dans le error_log
est:
[Thu Jul 04 14:17:00.097359 2013] [proxy:warn] [pid 18980:tid 4476780544] [client 127.0.0.1:50525] AH01144: No protocol handler was valid for the URL /ROOT. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.La dernière entrée du
access_log
est:
127.0.0.1 - - [04/Jul/2013:14:17:00 -0400] "GET /ROOT HTTP/1.1" 500 528
Une idée de ce que je fais mal ici?
3 réponses
Cela a donc pris du temps mais j'ai trouvé le moyen de le faire. Il y a un module de plus qui doit être chargé. C'est ce que le httpd.conf ressemble à
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<Directory />
AllowOverride none
Require all denied
</Directory>
ProxyPass /ROOT http://localhost:8080/ROOT
ProxyPassReverse /ROOT http://localhost:8080/ROOT
Cela fonctionne à coup sûr. :)
Comme il est facile de négliger, faites attention au commentaire de @ muka:
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo service apache2 restart
Assurez-vous d'activer les deux modules proxy
et proxy_http
!
En plus des autres bonnes réponses, si vous effectuez un proxy vers un point de terminaison https, vous devez activer mod_ssl et Ajouter SSLProxyEngine on
à votre serveur virtuel