Apache 2.x + Tomcat 6.x  + Load Balancing Tarak AKIK [email_address]
Le serveur web Apache 2.0 est conforme aux standards, rapide et mature pour fournir du contenu statique tels que les pages HTML statiques et des images. Le serveur Web Tomcat est idéale pour servir de Java Server Pages et des servlets, mais il n'est pas aussi rapide que Apache pour fournir du contenu statique. Apache 2.0 Vs Tomcat 0.9.0 10/03/2008
Afin de construire une application Web rapide et évolutive, les exigences d’appel à un serveur Apache que les délégués aux services de JSP et Servlet demandent plusieurs serveurs Tomcat à l'aide d'un module Apache, mod_jk(par exemple), qui effectue l'équilibrage de la charge de l'affinité de session, également connu sous le nom de " Sticky" sessions. Application Web rapide et évolutive ?
Quand un client demande une page JSP pour la première fois, l'équilibreur de charge redirige la demande reçue par Apache à l'un des serveurs Tomcat existants, de nouvelles demandes provenant de la même session client sera automatiquement transmis à la même serveur Tomcat. L'affinité de session
Ce document décrit comment configuré Apache 2.x et l’envoi des ressources JSP à deux demandes de Tomcat 6.x en écoute sur des ports différents. Cette installation a été effectuée sur un système Windows. Objet de présentation
Serveur Apache 2.X http://www.apache.org/dist/httpd/binaries/win32/apache_2.2.9-win32-x86-no_ssl-r2.msi Serveur Apache Tomcat 6.X.X http://opensource.become.com/mirror/apache/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.zip Tomcat Connector module pour apache http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/mod_jk-1.2.26-httpd-2.0.59.so 1-Télécharger les outils nécessaires
Renommer le fichier déjà télécharger «mod_jk-1.2.26-httpd-2.0.59.so » en mod_jk.dll puis copier le sous le répertoire «C:\Program Files\Apache Group\Apache2\modules » Editer le fichier httpd.conf sous le répertoire «C:\Program Files\Apache Group\Apache2\conf ». Ajouter les lignes suivants:  # Load mod_jk  LoadModule jk_module modules/mod_jk.dll # Configure mod_jk  JkWorkersFile conf/workers.properties  JkLogFile logs/mod_jk.log JkLogLevel info 2-Compiler, installer et configurer Apache
Insérer aussi le deux lignes suivantes a la fin de fichier: JkMount /*.jsp loadbalancer  JkMount /servlet/* loadbalancer* Créer le fichier workers.properties sous le répertoire «C:\Program Files\Apache Group\Apache2\conf ». Le serveur Apache utilise ce fichier pour déterminer la liste des serveurs Tomcat disponible. Pour cette configuration nous avons utilisés deux Tomcat qui sont en écoute respectivement sur les ports AJP13 11009 et 11209 au lieu de 8009 (port par défaut) 2-Compiler, installer et configurer Apache
workers.properties: 2-Compiler, installer et configurer Apache
Modification “%CATALINA_HOME%\conf\server.xml”  Ajout d’une unique variable jvmRoute pour le tag catalina engine. Remplacer  <Engine name=&quot;Standalone&quot; defaultHost=&quot;localhost&quot; debug=&quot;0&quot;> par  <Engine jvmRoute=&quot;tomcat1&quot; name=&quot;Standalone&quot; defaultHost=&quot;localhost&quot; debug=&quot;0&quot;>  Idem pour tomcat2, jvmRoute=“tomcat2” 3-configuration des serveurs Tomcat
Changement de port de serveur tomcat1 %CATALINA_HOME%\conf\server.xml Remplacer  <Server port=&quot;8005 &quot; Par  <Server port=&quot;11005&quot; Idem pour tomcat2,remplacer 8005 par 11205 Ca permet d’éviter le conflit de démarrage de deux serveurs Tomcat 3-configuration des serveurs Tomcat
Changement du port AJP13 11009 au lieu de 8009 pour tomcat1 et 12009 pour tomcat2 Désactiver le port http pour les deux serveurs Tomcat(Eviter d’accéder directement a des ressources sous l’un de deux serveur). Commenter le tag connecteur http dans le fichier server.xml <!-- <Connector className=&quot;org.apache.catalina.connector.http.HttpConnector&quot; port=&quot;8080&quot; minProcessors=&quot;5&quot; maxProcessors=&quot;75&quot; enableLookups=&quot;true&quot; redirectPort=&quot;8443&quot; acceptCount=&quot;10&quot; debug=&quot;0&quot; connectionTimeout=&quot;60000&quot;/> -->  3-configuration des serveurs Tomcat
Créer une page index.jsp dans le répertoire %TOMCAT1%\webapps\ROOT: <html>  <body bgcolor=« red&quot;>  <center> <%= request.getSession().getId() %>  <h1>Tomcat 1</h1>  </body>  </html> Créer une page index.jsp dans le répertoire %TOMCAT2%\webapps\ROOT: <html>  <body bgcolor=&quot;blue&quot;>  <center> <%= request.getSession().getId() %>  <h1>Tomcat 2</h1>  </body>  </html> 4-Création d’une page jsp de test
%tomcat1%/bin/startup.bat %tomcat2%/bin/startup.bat %apache2%/bin/apachectl start 5-Démarrage des serveurs
Il est maintenant temps de tester votre configuration. Tout d'abord, vérifiez que Apache sert le contenu statique.  Cliquez sur l'adresse: http://localhost/. Vous devriez voir la page par défaut de apache « index.html ». Maintenant, testez que Tomcat (soit 1 ou 2) peut servir des pages JSP Cliquez sur: http://localhost/index.jsp  Si vous obtenez une page rouge, la page a été servi par le serveur tomcat1, et si vous obtenez une page bleu, elle a été servi par le serveur tomcat2. 6-Tester l’installation
Maintenant, testez que l'affinité de session - également connu sous le nom de « sticky sessions » fonctionne bien au sein de l'équilibreur de charge « loadbalancer ».  Cliquez sur le bouton de rechargement de votre navigateur plusieurs fois et vérifiez que la page index.jsp vous avez reçu est toujours de la même serveur Tomcat. Si une requête http ne peut atteindre le serveur tomcat1 qui sera indisponible, alors apache fait la redirection de cette requête vers les autres serveurs tomcat existants tomcat2 par exemple. 6-Tester l’installation

Presentation Tomcat Load Balancer

  • 1.
    Apache 2.x +Tomcat 6.x + Load Balancing Tarak AKIK [email_address]
  • 2.
    Le serveur webApache 2.0 est conforme aux standards, rapide et mature pour fournir du contenu statique tels que les pages HTML statiques et des images. Le serveur Web Tomcat est idéale pour servir de Java Server Pages et des servlets, mais il n'est pas aussi rapide que Apache pour fournir du contenu statique. Apache 2.0 Vs Tomcat 0.9.0 10/03/2008
  • 3.
    Afin de construireune application Web rapide et évolutive, les exigences d’appel à un serveur Apache que les délégués aux services de JSP et Servlet demandent plusieurs serveurs Tomcat à l'aide d'un module Apache, mod_jk(par exemple), qui effectue l'équilibrage de la charge de l'affinité de session, également connu sous le nom de &quot; Sticky&quot; sessions. Application Web rapide et évolutive ?
  • 4.
    Quand un clientdemande une page JSP pour la première fois, l'équilibreur de charge redirige la demande reçue par Apache à l'un des serveurs Tomcat existants, de nouvelles demandes provenant de la même session client sera automatiquement transmis à la même serveur Tomcat. L'affinité de session
  • 5.
    Ce document décritcomment configuré Apache 2.x et l’envoi des ressources JSP à deux demandes de Tomcat 6.x en écoute sur des ports différents. Cette installation a été effectuée sur un système Windows. Objet de présentation
  • 6.
    Serveur Apache 2.Xhttp://www.apache.org/dist/httpd/binaries/win32/apache_2.2.9-win32-x86-no_ssl-r2.msi Serveur Apache Tomcat 6.X.X http://opensource.become.com/mirror/apache/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.zip Tomcat Connector module pour apache http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/mod_jk-1.2.26-httpd-2.0.59.so 1-Télécharger les outils nécessaires
  • 7.
    Renommer le fichierdéjà télécharger «mod_jk-1.2.26-httpd-2.0.59.so » en mod_jk.dll puis copier le sous le répertoire «C:\Program Files\Apache Group\Apache2\modules » Editer le fichier httpd.conf sous le répertoire «C:\Program Files\Apache Group\Apache2\conf ». Ajouter les lignes suivants: # Load mod_jk LoadModule jk_module modules/mod_jk.dll # Configure mod_jk JkWorkersFile conf/workers.properties JkLogFile logs/mod_jk.log JkLogLevel info 2-Compiler, installer et configurer Apache
  • 8.
    Insérer aussi ledeux lignes suivantes a la fin de fichier: JkMount /*.jsp loadbalancer JkMount /servlet/* loadbalancer* Créer le fichier workers.properties sous le répertoire «C:\Program Files\Apache Group\Apache2\conf ». Le serveur Apache utilise ce fichier pour déterminer la liste des serveurs Tomcat disponible. Pour cette configuration nous avons utilisés deux Tomcat qui sont en écoute respectivement sur les ports AJP13 11009 et 11209 au lieu de 8009 (port par défaut) 2-Compiler, installer et configurer Apache
  • 9.
  • 10.
    Modification “%CATALINA_HOME%\conf\server.xml” Ajout d’une unique variable jvmRoute pour le tag catalina engine. Remplacer <Engine name=&quot;Standalone&quot; defaultHost=&quot;localhost&quot; debug=&quot;0&quot;> par <Engine jvmRoute=&quot;tomcat1&quot; name=&quot;Standalone&quot; defaultHost=&quot;localhost&quot; debug=&quot;0&quot;> Idem pour tomcat2, jvmRoute=“tomcat2” 3-configuration des serveurs Tomcat
  • 11.
    Changement de portde serveur tomcat1 %CATALINA_HOME%\conf\server.xml Remplacer <Server port=&quot;8005 &quot; Par <Server port=&quot;11005&quot; Idem pour tomcat2,remplacer 8005 par 11205 Ca permet d’éviter le conflit de démarrage de deux serveurs Tomcat 3-configuration des serveurs Tomcat
  • 12.
    Changement du portAJP13 11009 au lieu de 8009 pour tomcat1 et 12009 pour tomcat2 Désactiver le port http pour les deux serveurs Tomcat(Eviter d’accéder directement a des ressources sous l’un de deux serveur). Commenter le tag connecteur http dans le fichier server.xml <!-- <Connector className=&quot;org.apache.catalina.connector.http.HttpConnector&quot; port=&quot;8080&quot; minProcessors=&quot;5&quot; maxProcessors=&quot;75&quot; enableLookups=&quot;true&quot; redirectPort=&quot;8443&quot; acceptCount=&quot;10&quot; debug=&quot;0&quot; connectionTimeout=&quot;60000&quot;/> --> 3-configuration des serveurs Tomcat
  • 13.
    Créer une pageindex.jsp dans le répertoire %TOMCAT1%\webapps\ROOT: <html> <body bgcolor=« red&quot;> <center> <%= request.getSession().getId() %> <h1>Tomcat 1</h1> </body> </html> Créer une page index.jsp dans le répertoire %TOMCAT2%\webapps\ROOT: <html> <body bgcolor=&quot;blue&quot;> <center> <%= request.getSession().getId() %> <h1>Tomcat 2</h1> </body> </html> 4-Création d’une page jsp de test
  • 14.
  • 15.
    Il est maintenanttemps de tester votre configuration. Tout d'abord, vérifiez que Apache sert le contenu statique. Cliquez sur l'adresse: http://localhost/. Vous devriez voir la page par défaut de apache « index.html ». Maintenant, testez que Tomcat (soit 1 ou 2) peut servir des pages JSP Cliquez sur: http://localhost/index.jsp Si vous obtenez une page rouge, la page a été servi par le serveur tomcat1, et si vous obtenez une page bleu, elle a été servi par le serveur tomcat2. 6-Tester l’installation
  • 16.
    Maintenant, testez quel'affinité de session - également connu sous le nom de « sticky sessions » fonctionne bien au sein de l'équilibreur de charge « loadbalancer ». Cliquez sur le bouton de rechargement de votre navigateur plusieurs fois et vérifiez que la page index.jsp vous avez reçu est toujours de la même serveur Tomcat. Si une requête http ne peut atteindre le serveur tomcat1 qui sera indisponible, alors apache fait la redirection de cette requête vers les autres serveurs tomcat existants tomcat2 par exemple. 6-Tester l’installation