16.7.2. Installer Mod_proxy HTTP Connector dans Apache HTTPD
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 modulesmod_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/
etmodules/
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.
Activer les modules
mod_proxy
dans le démon HTTP.Recherchez les lignes suivantes dans votre fichierHTTPD_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
Ajouter un proxy non équilibreur de charges.
Ajouter la configuration suivante à votre fichierHTTPD_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.Ajouter le proxy d'équilibrage des charges.
Pour utilisermod_proxy
comme équilibreur de charges, et pour envoyer du travail à des serveurs multiples de JBoss Enterprise Application Platform, ajouter la configuration suivante à votre fichierHTTPD_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 modulesmod_proxy
. Voir lamod_proxy
documentation http://httpd.apache.org/docs/2.2/mod/mod_proxy.html pour plus d'informations.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 dumod_proxy
, ajoutez le paramètrestickysession
à l'énoncéProxyPass
. Cet exemple montre également d'autres paramètres que vous pouvez utiliser. Reportez-vous à documentationmod_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
Redémarrer le HTTPD.
Redémarrez le serveur HTTPD pour que les modifications prennent effet.
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 ».