integration mod_jk avec Wildfly : redirection, équilibrage de charge (load balancing) et reprise sur incident (fail over)

/////integration mod_jk avec Wildfly : redirection, équilibrage de charge (load balancing) et reprise sur incident (fail over)

Maîtrisez l’intégration du serveur web Apache HTTP et du serveur d’Application Wildfly via mod_jk. Mettez en oeuvre 3 scénario : redirection, équilibrage de charge (load balancing) et reprise sur incident (fail over). Configurez mod_jk via les fichier mod_jk.properties et workers.properties.

Prérequis

 Tutoriel Installation Wildfly

Objectifs

 Comprendre la valeur ajoutée du couplage Apache / Wildfly

 Installation mod_jk

Durée

 40 min

Programme

 Comprendre la valeur ajoutée du couplage Apache / Wildfly

 Partie 1 : téléchargement et installation Apache

 Partie 2 : téléchargement et Installation mod_jk

 Partie 3 : configuration de mod_jk : httpd.conf et workers.properties

 Partie 4 : paramétrage de Wildfly

 Partie 5 : test de l’intégration Apache et Wildfly

 Partie 6 : load balancing

 Partie 7 : reprise sur incident (fail over)

Contexte

Nous souhaitons mettre en oeuvre une solution de haute disponibilité avec Wildfly.

haute-dispo-java-ee-objis-4-pb-a-gerer.png

 Le serveur Apache HTTP est le ‘champion du monde’ de la gestion de ressources statiques : pages html, images, feuille css

 Le serveur Wildfly (à travers sont conteneur de servlet ‘Undertow’, qui est en réalité Tomcat) permet de gérer des ressources Java dynamiques : servlets, jsp

De plus nous ne souhaitons ne pas avoir à ajouter le port 8080 pour accéder à nos applications dynamiques, comme l’application hellostruts.war

Le module Apache mod_jk permet de faire cette intégration.

Ce que nous allons faire

L’idéal est de permettre que pour toute requête entrante :

 les ressources statiques soient gérées par Apache HTTP

 les ressources dynamiques soient gérés par Wildfly

10 étapes clés

 1. Télécharger, installer et démarrer Apache 2.x

 2. Télécharger mod_jk (version > 1.2.28)

 3. Changer la configuration Apache pour include la config. modjk

 4. Créer la configuration modjk

 5. Configurer les workers mod_jk (que les noeuds Wildfly utilisent)

 6. Configurer que les URIs gérés par Wildfly via mod_jk

 7. Redémarrer Apache

 8. Configurer Wildfly

 9. Redémarrer Wildfly

 10. Tester

Partie 1 : téléchargement et installation Apache

 Téléchargez la version Apache 2.2 pour Windows à partir du site apachehaus.com

tutoriel-apache-installation-windows-1

ATTENTION : suivant la version d’Apache que vous choisissez, il pourra être nécessaire d’installer au préalable des packages Microsoft Visual C++ afin de ne pas avoir de problème lié à un Manquement de DLL lorsque vous démarrerez le serveur Apache. Les fichiers à installer sont précisés en bas de la page de téléchargement ci-dessus..

Par exemple voici un exemple d’Apache (ne necessite aucun package VC++ supplémentaire) pour Windows 32 bits :

httpd-2.2.31-x86-r4

 Dézippez

tutoriel-apache-22-installation-windows-3

QUESTION : citez 2 informations utiles dans le fichier readme_first.html

tutoriel-apache-22-installation-windows-4

 

tutoriel-apache-22-installation-windows-5

Le programme ‘httpd.exe’ permettant de lancer Apache est présent dans le répertoire bin de l’installation.

tutoriel-apache-installation-windows-4-DocumentRoot

 

tutoriel-apache-installation-windows-4-DocumentRoot-2

QUESTION : quel est le répertoire de configuration d’Apache ? quel est le fichier de configuration central ?

QUESTION : quel est le port d’écoute par défaut ? comment le modifier ?

tutoriel-apache-installation-windows-4-mod-ssl

 

tutoriel-apache-installation-windows-4-serveRoot

 Démarrez Apache

tutoriel-apache-installation-windows-5

Notez que Apache est démarré. Vous pouvez le vérifier à travers http://localhost.

tutoriel-apache-installation-windows-6

CORRECTION : HTTPD 2.2 suite à configuration

Apache22-customise-tp-apache-jboss-wildfly-avant-installation-mod-jk-2

Partie 2 : téléchargement et installation mod_jk

 Téléchargez mod_jk

tutoriel-apache-installation-windows-7

 

tutoriel-apache-installation-windows-8

 Téléchargez le

tutoriel-apache-installation-windows-9

 copiez le dans le répertoire ‘modules’ d’Apache.

tutoriel-apache-installation-windows-10

 Arrêtez (CTRL + C) puis redémarrez Apache afin de tenir compte des modifications

tutoriel-apache-installation-windows-5

Notez que Apache est démarré. Vous pouvez le vérifier à travers http://localhost.

tutoriel-apache-installation-windows-6

CORRECTION : Apache après installation mod_jk

Apache22-customise-tp-apache-jboss-wildfly-apres-installation-mod-jk

Partie 3 : configuration de mod_jk

2 étapes clés :

Etape 1 : déclaration du noeud1 (Wildfly) dans workers.properties
Etape 2 : mise à jour de httpd.conf

Etape 1 : déclaration du noeud (Wildfly)

Dans le répertoire ‘conf’ de Apache, créer fichier worker.properties avec 1 cible (noeud1)

tutoriel-apache-installation-windows-11

QUESTION : qu’est ce que ‘noeud1’ ?

Expliquez cette configuration en utilisant la documentation Tomcat worker

Etape 2 : mise à jour de httpd.conf

Modifier le fichier conf/httpd.conf d’Apache :

— Ajoutez à la fin du fichier

tutoriel-apache-installation-windows-12

— > Toutes les requêtes seront redirigées vers l’instance de Wildfly.

La configuration de mod_jk est terminée

CORRECTION : Apache HTTPD après installation et configuration Mod_jk

Apache22-customise-tp-apache-jboss-wildfly-apres-installation-et-configuration-mod-jk

Partie 4 : Paramétrage de Wildfly pour redirection

TELECHARGER APPLICATION (hellostruts.war) et fichiers de config (httpd.conf + workers.properties)

configuration1

Besoin de gérer 2 points :

1) Ouvrir un port 8009 pour la communication avec mod_jk . Cela se fait via le sous système ‘undertow’

2) Déployer une application dans Wildfly

3) accéder à l’application via Apache

Connecteur AJP port 8009

Après le démarrage de Wildfly, lancez la console CLI et exécuter la commande suivante :

ajouter le connecteur AJP : [standalone@localhost:9999 /] /subsystem=undertow/server=default-server/ajp-listener=myListener:add(socket-binding=ajp, scheme=http, enabled=true)

integration-apache-mod-jk-Wildfly-1ter

Déploiement Application

integration-apache-mod-jk-Wildfly-1bis

Accès Application via Apache

integration-apache-mod-jk-Wildfly-2

Partie 5 : test

 Démarrez Wildfly

 Déployez dans Wildfly l’application ‘hellostruts.war’

 Arrêtez puis démarrez Apache

 Analysez les logs de mod_jk pour valider que le module est bien chargé et prêt.

tutoriel-apache-installation-windows-13

Partie 6 : load balancing

 Configurer workers.properties

integration-apache-mod-jk-Wildfly-loadbalancer-2

 Expliquez.

 Configurer httpd.conf

integration-apache-mod-jk-Wildfly-loadbalancer-1

 Expliquez

Préparation instances de Wildfly

integration-apache-mod-jk-Wildfly-loadbalancer-3

 

integration-apache-mod-jk-Wildfly-loadbalancer-4

 

integration-apache-mod-jk-Wildfly-loadbalancer-5

 

integration-apache-mod-jk-Wildfly-loadbalancer-6

 Lancez la commande suivante : standalone.bat -c standalone.xml -b 10.226.251.191 -bmanagement 10.226.251.191 -Djboss.node.name=noeud1 -Djboss.socket.binding.port-offset=100

integration-apache-mod-jk-Wildfly-loadbalancer-7

 

integration-apache-mod-jk-Wildfly-loadbalancer-8

 Lancez la commande siuivante : standalone.bat -c standalone.xml -b 10.226.251.191 -bmanagement 10.226.251.191 -Djboss.node.name=noeud2 -Djboss.socket.binding.port-offset=200

integration-apache-mod-jk-Wildfly-loadbalancer-9

 

integration-apache-mod-jk-Wildfly-loadbalancer-10

préparation de la livraison

Afin de permettre la réplication de session pour un war , vous devez ajouter la balise ‘distributable’ dans le web.xml

tutoriel-jboss-load-balancing-equilibrage-charge-mod-jk-5

 Packager et déployez l’application dans les répertoires ‘deploy’ de chaque noeud

test affinité de session

 Arréter puis démarrer Jboss

 Arréter puis démarrer Apache

 Analysez dans log mod_jk puis dans logs console des nœuds le résultat des requêtes suivantes :

— http://localhost

— http://localhost/hellostruts/

tutoriel-jboss-load-balancing-equilibrage-charge-mod-jk-7

 Sur quel nœud se trouve t’on ?

 Quelle est le numéro de session utilisateur ?

 Rafraichissez la page. En déduire que l’affinité de session fonctionne.

test load balancing

 Ouvrez une nouvelle fenêtre de navigateur

 Analysez dans logs console des noeuds le résultat des requêtes suivantes :

— http://localhost/hellostruts/

Montrez que c’est l’autre nœud qui répond.

En déduire que la répartition de charge est effective

 Modifiez la pondération : 5 requête pour le nœud 1 pour 1 requête pour le nœud 2.

Partie 7 : test Fail over

 Arrêtez le noeud sur lequel l’application répond.

 Rafraichissez à nouveau la page.

Montrez via les logs de la console de l’autre noeud que celui ci répond avec la même session qu’avant .

Partie 8 : Supervision

 En utilisant la documentation de Tomcat, expliquer ce qu’est le worker ‘status’

 Configurez le worker status

Fichiers corrigés de configuration

configuration

Conclusion

Dans ce tutoriel vous avez intégré Apache et Wildfly à travers le module mod_jk. Vous avez réalisé 3 manipulations : redirection Apache vers Wildfly, load balancing et reprise sur incident (fail over).

2018-01-30T16:38:03+01:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java