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
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.
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
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 :
Dézippez
QUESTION : citez 2 informations utiles dans le fichier readme_first.html
Le programme ‘httpd.exe’ permettant de lancer Apache est présent dans le répertoire bin de l’installation.
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 ?
Démarrez Apache
Notez que Apache est démarré. Vous pouvez le vérifier à travers http://localhost.
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 le
copiez le dans le répertoire ‘modules’ d’Apache.
Arrêtez (CTRL + C) puis redémarrez Apache afin de tenir compte des modifications
Notez que Apache est démarré. Vous pouvez le vérifier à travers http://localhost.
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)
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
— > 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)
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)
Déploiement Application
Accès Application via Apache
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.
Partie 6 : load balancing
Configurer workers.properties
Expliquez.
Configurer httpd.conf
Expliquez
Préparation instances de Wildfly
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
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
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
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/
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
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).