Last modified by Christian SENET on 2016/06/17 06:09

Show last authors
1 **Prérequis : **Apache > version 2.4.10 sur plateforme unix, linux et windows implémente un mode reverse proxy pour les [[(% style="line-height: 1.4285715;" %)websockets>>url:http://apache%20module%20mod_proxy_wstunnel/]].
2
3
4 configuration dans //httpd.conf// d'un serveur apache **(% style="color: rgb(42,0,255);" %)[[www.domain.com>>url:http://www.domain.com]](%%)** (en écoute sur le port 80) en frontal de deux tomcats **remotehost1** et **remotehost2** (en écoute sur le port 88) pour les requêtes en reverse proxy
5
6 Le loadbalancer est configuré pour l'application **myapp**
7
8 Les deux noeuds du cluster seront différenciés par leur nom **node1** et **node2**. Ces noms utilisés dans le fichier// httpd.conf// doivent être respectivement configurés lors du lancement de la jvm sur **remotehost1** et **remotehost2**
9
10
11 {{code language="none"}}
12 LoadModule headers_module modules/mod_headers.so
13 LoadModule proxy_module modules/mod_proxy.so
14 LoadModule proxy_http_module modules/mod_proxy_http.so
15 LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
16
17 LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so 
18 LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
19 LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
20 ...
21  
22 ProxyRequests Off
23 ServerName www.domain.comr:80
24 DocumentRoot "d:/Apache24/htdocs"
25
26
27 BalancerInherit Off
28 <Proxy balancer://wscluster>
29 BalancerMember ws://remotehost1.domain.com:88 route=node1 retry=1 keepalive=On ttl=120
30 BalancerMember ws://remotehost2.domain.com:88 route=node2 retry=1 keepalive=On ttl=120
31 ProxySet nofailover=Off
32 </Proxy>
33 <Proxy balancer://httpcluster>
34 BalancerMember http://remotehost2.domain.com:88 route=node1 retry=1 keepalive=On
35 BalancerMember http://remotehost2.domain.com:88 route=node2 retry=1 keepalive=On
36 ProxySet nofailover=Off
37 </Proxy>
38 ProxyPass /myapp/WagonWS balancer://wscluster/myapp/WagonWS stickysession=WagonNodeId stickysessionsep=Off
39 ProxyPassReverse /myapp/WagonWS balancer://wscluster/myapp/WagonWS
40 ProxyPass /myapp/ balancer://httpcluster/myapp/ stickysession=WagonNodeId stickysessionsep=Off
41 ProxyPassReverse /myapp/ balancer://httpcluster/myapp/
42 {{/code}}
43
44
45 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.
46
47 configuration du listener tomcat en mode reverse proxy
48
49
50 {{code language="xml" language="xml"}}
51 <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"/>
52 {{/code}}
53
54
55 configuration de tomcat en spécifiant le nom de cookie de session WagonNodeId à node1 sur **remotehost1** et node2 **remotehost2** au lancement de à l'aide de jvm à l'aide de la directive -DWagonNodeId~=**nodexxx**
56
57 En linux ajouter (ou créer la variable JAVA_OPTS) dans setclasspath.sh
58 {{{export JAVA_OPTS~=-DWagonNodeId~=node1 }}}
59
60 En windows ajouter (ou créer la variable JAVA_OPTS) dans setclasspath.bat ou ajoutez la directivement dans le service tomcat
61 {{{set JAVA_OPTS~=-DWagonNodeId~=node1}}}
62