Utilisation Apache en reverse proxy
Modifié par Julien EYMERY le 2015/09/03 09:42
Prérequis : Apache > version 2.4.10 sur plateforme unix, linux et windows implémente un mode reverse proxy pour les websockets.
configuration dans httpd.conf d'un serveur apache www.domain.com (en écoute sur le port 80) en frontal d'un serveur tomcat remotehost (en écoute sur le port 88) pour les requêtes en reverse proxy
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
...
ProxyRequests Off
ProxyPass /myapp/WagonWS ws://remotehost:88/myapp/WagonWS
ProxyPassReverse /myapp/WagonWS ws://remotehost:88/myapp/WagonWS
ProxyPass /myapp/ http://remotehost:88/myapp/
ProxyPassReverse /myapp/ http://remotehost:88/myapp/
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
...
ProxyRequests Off
ProxyPass /myapp/WagonWS ws://remotehost:88/myapp/WagonWS
ProxyPassReverse /myapp/WagonWS ws://remotehost:88/myapp/WagonWS
ProxyPass /myapp/ http://remotehost:88/myapp/
ProxyPassReverse /myapp/ http://remotehost:88/myapp/
Remarque : dans la déclaration de la règle en reverse proxy sur la websocket WagonWS, l'url ne doit être se terminer par /WagonWS, en aucun cas il ne faut rajouter de / à la fin de l'URL.
configuration du listener tomcat en mode reverse proxy
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" port="88" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true" scheme="http" proxyName="www.domain.com" proxyPort="80"/>