Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

17.7.3. Installer le module jk_mod dans un serveur Apache HTTP (ZIP)

Conditions préalables

  • Pour cette tâche, vous devrez utiliser Apache HTTPD installé dans un environnement pris en charge ou l'Apache HTTP installé sur JBoss Enterprise Web Server. Notez que JBoss Enterprise Web Server fait partie de la distribution JBoss EAP 6.
  • Si vous devez installer un serveur Apache HTTP natif de Red Hat Enterprise Linux, utilisez les instructions qui se trouvent dans Red Hat Enterprise Linux Deployment Guide.
  • Si vous devez installer un serveur HP-UX native Apache HTTP Server, utiliser les instructions qui se trouvent dans le guide HP-UX Web Server Suite Installation Guide, à l'adresse suivante https://h20392.www2.hp.com/portal/swdepot/displayInstallInfo.do?productNumber=HPUXWSATW232.
  • Si vous avez besoin d'installer JBoss Enterprise Web Server, utiliser les instructions dans JBoss Enterprise Web Server Installation Guide.
  • Si vous utilisez le serveur Apache HTTP, télécharger le package JBoss EAP 6 Native Components pour votre plate-forme du portail clients de Red Hat à https://access.redhat.com. Ce paquet contient à la fois les binaires mod_jk et mod_cluster qui sont précompilés pour Red Hat Enterprise Linux. Si vous utilisez JBoss Enterprise Web Server, il comprend déjà le binaire pour mod_jk.
  • Si vous utilisez Red Hat Enterprise Linux (RHEL) 5 et le serveur natif Apache HTTP (httpd 2.2.3), commencez par télécharger le module mod_perl pour charger le module mod_jk.
  • Vous devez être connectés avec des privilèges administratifs (root).

Procédure 17.12. Installer le module mod cluster

  1. Configurer le module mod_jk.

    1. Créer un nouveau fichier nommé HTTPD_HOME/conf.d/mod-jk.conf et y ajouter ce qui suit.

      Note

      La directive JkMount indique quels URL Apache doivent aller vers le module mod_jk. Sur la base de la configuration de la directive, mod_jk transfère l'URL reçu aux conteneurs de servlet qui conviennent.
      Pour servir le contenu directement, et pour n'utiliser que l'équilibreur de charges pour les applications Java, le chemin URL doit être /application/*. Pour utiliser mod_jk en tant qu'équilibreur des charges, utiliser la valeur /* pour transférer tous les URL au mod_jk.
      # Load mod_jk module
      # Specify the filename of the mod_jk lib
      LoadModule jk_module modules/mod_jk.so
      
      # Where to find workers.properties
      JkWorkersFile conf/workers.properties
      
      # Where to put jk logs
      JkLogFile logs/mod_jk.log
      
      # Set the jk log level [debug/error/info]
      JkLogLevel info 
      
      # Select the log format
      JkLogStampFormat  "[%a %b %d %H:%M:%S %Y]"
      
      # JkOptions indicates to send SSK KEY SIZE
      JkOptions +ForwardKeySize -ForwardDirectories
      
      # JkRequestLogFormat
      JkRequestLogFormat "%w %V %T"
      
      # Mount your applications
      # The default setting only sends Java application data to mod_jk.
      # Use the commented-out line to send all URLs through mod_jk.
      # JkMount /* loadbalancer
      JkMount /application/* loadbalancer
      
      # Add shared memory.
      # This directive is present with 1.2.10 and
      # later versions of mod_jk, and is needed for
      # for load balancing to work properly
      JkShmFile logs/jk.shm 
      
      # Add jkstatus for managing runtime data
      <Location /jkstatus/>
      JkMount status
      Order deny,allow
      Deny from all
      Allow from 127.0.0.1
      </Location>
      
      Observer les valeurs et vérifier qu'elles conviennent à votre installation. Quand vous serez satisfait, sauvegarder le fichier.
    2. Spécifier une directive JKMountFile

      En plus de la directive JKMount de mod-jk.conf, vous pourrez spécifier un fichier qui contienne des modèles URL multiples à transférer au mod_jk.
      1. Ajouter ce qui suit au fichier HTTPD_HOME/conf/mod-jk.conf :
        # You can use external file for mount points.
        # It will be checked for updates each 60 seconds.
        # The format of the file is: /url=worker
        # /examples/*=loadbalancer
        JkMountFile conf/uriworkermap.properties
        
      2. Créer un nouveau fichier intitulé HTTPD_CONF/uriworkermap.properties, avec une ligne pour chaque modèle URL à faire correspondre. L'exemple suivant montre des exemples de syntaxe pour ce fichier.
        # Simple worker configuration file
        /*=loadbalancer
        
    3. Copier le fichier mod_jk.so dans le répertoire de modules d'httpd

      Note

      Cela n'est utile que si le serveur HTTP Apache n'a pas de mod_jk.so dans son répertoire modules/. Vous pourriez éviter cette étape si vous utilisez le serveur Apache HTTP inclus comme téléchargement de JBoss EAP 6.
      Extraire le paquet Native Web Server Connectors Zip. Localiser le fichier mod_jk.so soit dans le répertoire EAP_HOME/modules/system/layers/base/native/lib/httpd/modules/ ou dans le répertoire EAP_HOME/modules/system/layers/base/native/lib64/httpd/modules/ suivant que votre système d'exploitation est de 32-bit ou de 64-bit.
      Copier le fichier dans le répertoire HTTPD_MODULE/.
  2. Configurer les noeuds de worker mod_jk.

    1. Créer un nouveau fichier nommé HTTPD_CONF/workers.properties. Utiliser l'exemple suivant comme point de départ, et modifier le fichier selon vos besoins.
      # Define list of workers that will be used
      # for mapping requests
      worker.list=loadbalancer,status
      
      # Define Node1
      # modify the host as your host IP or DNS name.
      worker.node1.port=8009
      worker.node1.host=node1.mydomain.com
      worker.node1.type=ajp13
      worker.node1.ping_mode=A
      worker.node1.lbfactor=1 
      
      # Define Node2
      # modify the host as your host IP or DNS name.
      worker.node2.port=8009
      worker.node2.host=node2.mydomain.com
      worker.node2.type=ajp13
      worker.node2.ping_mode=A
      worker.node2.lbfactor=1
      
      # Load-balancing behavior
      worker.loadbalancer.type=lb
      worker.loadbalancer.balance_workers=node1,node2
      worker.loadbalancer.sticky_session=1
      
      # Status worker for managing load balancer
      worker.status.type=status
      
      Pour obtenir une description détaillée de la syntaxe du fichier workers.properties, et pour obtenir des options de configuration avancées, consulter Section 17.7.5, « Référence de configuration pour les Apache Mod_jk Workers ».
  3. Redémarrer le serveur web.

    La façon de redémarrer le serveur web dépend de savoir si vous utilisez le serveur Apache HTTP de Red Hat Enterprise Linux ou le serveur HTTP inclus dans JBoss Enterprise Web Server. Choisir une des deux méthodes ci-dessous.
    • Serveur Apache HTTPD de Red Hat Enterprise Linux

      Exécuter la commande suivante :
      [root@host]# service httpd restart
    • Serveur de JBoss Enterprise Web Server HTTP

      JBoss Enterprise Web Server exécute à la fois sur Red Hat Enterprise Linux et Microsoft Windows Server. La méthode de redémarrage du serveur web est différente pour chacun.
      • Red Hat Enterprise Linux, installé avec RPM

        Dans Red Hat Enterprise Linux, JBoss Enterprise Web Server installe son serveur web en tant que service. Pour redémarrer le serveur web, lancer les deux commandes suivantes :
        [root@host ~]# service httpd stop
        [root@host ~]# service httpd start
        
      • Red Hat Enterprise Linux, installé avec Zip

        Si vous avez installé le serveur HTTP Apache de JBoss Enterprise Web à partir d'une archive ZIP, utiliser la commande apachectl pour redémarrer le serveur web. Remplacer EWS_HOME par le répertoire où vous avez décompressé le serveur JBoss Enterprise Web Server Apache HTTP.
        [root@host ~]# EWS_HOME/httpd/sbin/apachectl restart
        
      • Microsoft Windows Server

        Lancer les commandes suivantes dans une invite de commande avec des privilèges administratifs :
        C:\> net stop Apache2.2
        C:\> net start Apache2.2
        
      • Solaris

        Lancer les commandes suivantes dans l'invite de commandes avec des permissions admin. Remplacer EWS_HOME par le répertoire dans lequel vous avez décompressé le serveur HTTP Apache de JBoss Enterprise Web.
        [root@host ~] EWS_HOME/httpd/sbin/apachectl restart
        
Résultat

Le serveur Apache HTTP est maintenant configuré pour pouvoir utiliser l'équilibreur de charges de mod_jk. Pour configurer JBoss EAP 6 pour qu'il soit au fait de mod_jk, consulter Section 17.4.6, « Configurer JBoss EAP 6 pour accepter des requêtes en provenance des serveurs web externes ».