16.7.2. Installer Mod_proxy HTTP Connector dans Apache HTTPD

Aperçu

mod_proxy est un module d'équilibrage de charges fourni par Apache. Cette tâche présente une configuration de base. Pour plus d'informations sur la configuration avancée, ou pour plus de détails, reportez-vous à la documentation Apache mod_proxy à https://httpd.apache.org/docs/2.2/mod/mod_proxy.html. Pour plus d'informations sur mod_proxy d'une perspective JBoss Enterprise Application Platform, consulter Section 16.7.1, « Le connecteur Apache mod_proxy HTTP » et Section 16.1.3, « Connecteurs HTTP - Aperçu général ».

Prérequis

  • JBoss Enterprise Web Server HTTPD ou Apache HTTPD doivent être installés. Un démon HTTP autonome est fourni séparément dans le portail clients Red Hat à https://access.redhat.com, dans la zone de téléchargement de JBoss Enterprise Application Platform 6. Voir Section 16.3.2, « Installer Apache HTTPD inclus avec JBoss Enterprise Application Platform 6 » pour obtenir des informations sur le démon HTTP si vous souhaitez l'utiliser.
  • Les modules mod_proxy doivent être installés. Apache HTTPD est généralement livré avec les modules mod_proxy déjà inclus. C'est le cas sur Red Hat Enterprise Linux et le démon HTTPD qui vient avec le serveur Web de JBoss Enterprise.
  • Vous avez besoin d'être root ou de posséder des privilèges administratifs pour modifier la configuration HTTPD.
  • Déterminer le répertoire de configuration HTTPD. C'est le répertoire contenant les répertoires conf/ et modules/ pour Apache HTTPD. Ceci sera dénommé HTTPD_CONF pour le reste de cette tâche. Les valeurs typiques sont les suivantes :
    • /etc/httpd/
    • EWS_HOME/httpd/, à partir d'où le serveur JBoss Enterprise Web Server est installé.
  • Dans notre exemple, on assume que JBoss Enterprise Application Platform est configuré avec le connecteur web HTTP ou HTTPS. Cela fait partie de la configuration du sous-système web. Voir Section 15.1, « Configurer le Sous-système Web » pour obtenir des informations sur la façon de configurer le sous-système web.
  1. Activer les modules mod_proxy dans le démon HTTP.

    Recherchez les lignes suivantes dans votre fichier HTTPD_CONF/conf/httpd.conf. Si elles ne sont pas présentes, ajoutez-les en bas. Si elles sont présentes, mais que les lignes commencent par un caractère de commentaire (#), supprimer le caractère. Enregistrez le fichier par la suite. Habituellement, les modules sont déjà présents et activés.
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    # Uncomment these to proxy FTP or HTTPS
    #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    #LoadModule proxy_connect_module modules/mod_proxy_connect.so
    
  2. Ajouter un proxy non équilibreur de charges.

    Ajouter la configuration suivante à votre fichier HTTPD_CONF/conf/httpd.conf, directement sous une directive <VirtualHost> que vous possédez sans doute. Remplacer les valeurs par des valeurs appropriées à votre installation.
    Cet exemple utilise un hôte virtuel. Voir la nouvelle étape pour utiliser la configuration HTTPD par défaut.
    <VirtualHost *:80>
    # Your domain name
    ServerName Domain_NAME_HERE
    
    ProxyPreserveHost On
    
    # The IP and port of the JBoss Enterprise Application Platform
    # These represent the default values, if your HTTPD is on the same host
    # as your JBoss Enterprise Application Platform managed domain or server
    
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
    
    # The location of the HTML files, and access control information
    DocumentRoot /var/www
    <Directory /var/www>
    Options -Indexes
    Order allow,deny
    Allow from all
    </Directory>
    </VirtualHost>
    
    Après avoir appliqué vos changements, sauvegarder le fichier.
  3. Ajouter le proxy d'équilibrage des charges.

    Pour utiliser mod_proxy comme équilibreur de charges, et pour envoyer du travail à des serveurs multiples de JBoss Enterprise Application Platform, ajouter la configuration suivante à votre fichier HTTPD_CONF/conf/httpd.conf.
    <Proxy balancer://mycluster>
    
    Order deny,allow
    Allow from all
    
    # Add each JBoss Enterprise Application Server by IP address and port.
    # If the route values are unique like this, one node will not fail over to the other.
    BalancerMember http://10.16.92.99:8080 route=node1
    BalancerMember http://10.16.92.100:8180 route=node2
    </Proxy>
    
    <VirtualHost *:80>
     # Your domain name
     ServerName YOUR_DOMAIN_NAME
    
     ProxyPreserveHost On
     ProxyPass / balancer://mycluster/
    
     # The location of the HTML files, and access control information DocumentRoot /var/www
     <Directory /var/www>
      Options -Indexes
      Order allow,deny
      Allow from all
     </Directory>
    
    </VirtualHost>
    
    
    Les exemples ci-dessus communiquent tous par le protocole HTTP. Vous pouvez également utiliser les protocoles AJP ou HTTPS si vous chargez les modules mod_proxy. Voir la mod_proxy documentation http://httpd.apache.org/docs/2.2/mod/mod_proxy.html pour plus d'informations.
  4. Activer les sticky sessions.

    Sticky sessions signifie que si la demande d'un client va initialement à un nœud spécifique de JBoss Enterprise Application Platform, toutes les demandes futures seront envoyés au même nœud, sauf si le nœud n'est plus disponible. C'est presque toujours le comportement correct.
    Pour activer des sticky sessions du mod_proxy, ajoutez le paramètre stickysession à l'énoncé ProxyPass. Cet exemple montre également d'autres paramètres que vous pouvez utiliser. Reportez-vous à documentation mod_proxy Apache à http://httpd.apache.org/docs/2.2/mod/mod_proxy.html pour plus d'informations à leur sujet.
    ProxyPass /MyApp balancer://mycluster stickysession=JSESSIONID lbmethod=bytraffic nofailover=Off
  5. Redémarrer le HTTPD.

    Redémarrez le serveur HTTPD pour que les modifications prennent effet.
Résultat

Votre HTTPD est configuré pour utiliser le mod_proxy pour envoyer des demandes de client aux serveurs ou clusters de JBoss Enterprise Application Platform, en configuration standard ou équilibrage de charge. Pour configurer la plate-forme JBoss Enterprise Application pour répondre à ces demandes, reportez-vous à Section 16.3.5, « Configurer JBoss EAP pour que la plate-forme puisse accepter des requêtes en provenance d'HTTPD externe ».