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