Red Hat Training

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

17.7.5. Référence de configuration pour les Apache Mod_jk Workers

Le fichier workers.properties définit le comportement de workers à qui mod_jk passe les requêtes de clients. Dans Red Hat Enterprise Linux, le fichier se trouve dans /etc/httpd/conf/workers.properties. Le fichier workers.properties définit où les différents conteneurs de servlet se trouvent, et la façon dont la charge de travail doit être distribuée parmi eux.
La configuration est divisée en trois sections. La première section traite des propriétés globales, qui s'appliquent à tous les workers. La deuxième section contient des paramètres qui s'appliquent à un équilibreur de charge spécifique. La troisième section contient les paramètres qui s'appliquent à un nœud spécifique, équilibré par l'équilibreur de charge.
La structure générale d'une propriété est worker.WORKER_NAME.DIRECTIVE, avec WORKER_NAME comme nom unique de worker, et DIRECTIVE comme paramètre de configuration à appliquer au worker.
Référence de configuration pour les équilibreurs de charge d'Apache mod_jk

Les modèles spécifient les paramètres d'équilibrage de charge par défaut. Vous pouvez remplacer le modèle contenu dans les paramètres de l'équilibreur de charge lui-même. Vous pouvez voir un exemple de modèle d'équilibreur de charge dans Exemple 17.6, « Exemple de fichier workers.properties ».

Tableau 17.13. Propriétés globales

Propriété Description
worker.list La liste des noms d'équilibreur de charge utilisés par mod_jk. Ces équilibreurs de charge sont prêts à recevoir des requêtes.

Tableau 17.14. Directives obligatoires

Propriété Description
type
Le type d'équilibreur de charge. Le type par défaut est ajp13. Autres valeurs possibles ajp14, lb, status.
Pour plus d'informations sur ces directives, voir la référence de protocole Apache Tomcat Connector AJP à http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html.

Tableau 17.15. Directives d'équilibreur de charge

Propriété Description
balance_workers
Spécifie les nœuds de worker que l'équilibreur de charge doit gérer. Vous pouvez utiliser la directive plusieurs fois pour un même équilibrage de charge. Il se compose d'une liste séparée par des virgules des noms de workers. Ceci est défini par worker, et non pas par nœud. Elle affecte tous les nœuds équilibrés par ce type de worker.
sticky_session
Indique si les demandes d'une même session sont toujours acheminées vers le même équilibreur de charge. La valeur par défaut est 0, ce qui signifie que les sticky sessions sont désactivées. Pour activer des sticky sessions, définir à 1. Les sticky sessions doivent habituellement être activées, à moins que toutes vos demandes soient vraiment stateless. Ceci est défini par équilibreur de charge, et non pas par nœud. Affecte tous les nœuds équilibrés par ce type d'équilibreur de charge.

Tableau 17.16. Directives de connexion

Propriété Description
hôte
Le nom d'hôte ou l'adresse IP de l'équilibreur de charge. L'équilibreur de charge doit supporter la pile de protocole ajp. La valeur par défaut est localhost.
Important
Le numéro de port de l'instance de serveur éloigné qui écoute les requêtes de protocoles définis. La valeur par défaut est 8009, qui correspond au port d'écoute des équilibreurs de charge AJP13. La valeur par défaut des équilibreurs de charge AJP14 est 8011.
ping_mode
Les conditions dans lesquelles les connexions sont interrogées pour le statut du réseau. La sonde utilise un paquet AJP13 vide pour CPing et s'attend à un CPong en réponse. Spécifier les conditions à l'aide d'une combinaison d'indicateurs de la directive. Les indicateurs ne sont pas séparés par une virgule ou un espace blanc. Le ping_mode peut être n'importe quelle combinaison de C, P, I, ou A.
  • C - Connect. Sonde la connexion une fois seulement suite à la connexion au serveur. Spécifier le timeout en utilisant la valeur de connect_timeout. Sinon, la valeur de ping_timeout sera utilisée.
  • P - Prepost. Sonde la connexion avant d'envoyer une requête au serveur. Spécifier le timeout en utilisant la directive prepost_timeout. Sinon, la valeur ping_timeout sera utilisée.
  • I - Interval. Interroge la connexion à un intervalle spécifié par connection_ping_interval, si présent. Sinon, utilise la valeur de ping_timeout.
  • A - All. Un raccourci pour CPI, qui indique que toutes les sondes de connexion sont utilisées.
ping_timeout, connect_timeout, prepost_timeout, connection_ping_interval
Les valeurs de timeout pour les paramètres de sonde de connexion ci-dessus. La valeur est spécifiée en millisecondes, et la valeur par défaut pour ping_timeout est de 10000.
lbfactor
Spécifie le facteur d'équilibrage des charges d'un équilibreur individuel et ne s'applique qu'à un noeud de worker membre d'un équilibreur de charge. Ceci est utile pour donner à un serveur plus puissant, une charge de travail supplémentaire. Pour donner à un worker 3 fois la charge de la valeur par défaut, définir cette valeur à 3: worker.my_worker.lbfactor=3

Exemple 17.6. Exemple de fichier workers.properties

worker.balancer1.type=lb
worker.balancer2.type=lb

worker.balancer1.sticky_sessions=1
worker.balancer1.balance_workers=node1
worker.balancer2.sticky_session=1
worker.balancer2.balance_workers=node2,node3

worker.nodetemplate.type=ajp13
worker.nodetemplate.port=8009

worker.node1.template=nodetemplate
worker.node1.host=localhost
worker.node1.ping_mode=CI
worker.node1.connection_ping_interval=9000
worker.node1.lbfactor=1

worker.node2.template=nodetemplate
worker.node2.host=192.168.1.1
worker.node2.ping_mode=A

worker.node3.template=nodetemplate
worker.node3.host=192.168.1.2
L'exemple ci-dessus vous montre l'utilisation de plusieurs équilibreurs de charge au service du contenu pour le compte du serveur web. Les raisons de telles configurations peuvent être :
  • Avoir différents contextes pouvant être servis par différents équilibreurs de charge, fournissant un environnement de développement dans lequel tous les développeurs peuvent partager le même serveur web tout en ayant un équilibreur de charge propre.
  • Avoir plusieurs hôtes virtuels servis par differents processus, offrant ainsi une séparation claire entre les sites appartenant à des sociétés diverses.
  • Fournir un équilibrage des charges, c-a-d exécuter plusieurs équilibreurs de charge sur une même machine et répartir les demandes entre eux.
Les détails de configuration de ce document sont limités. Voir la documentation Apache à http://tomcat.apache.org/connectors-doc/ pour obtenir des instructions supplémentaires.