113 votes

Apache à tomcat: mod_jk vs mod_proxy

Quels sont les avantages et les inconvénients d'utiliser mod_jk et mod_proxy pour frontaliser une instance de tomcat avec apache?

J'utilise mod_jk en production depuis des années mais j'ai entendu dire que c'est "l'ancienne méthode" de frontalisation de tomcat. Devrais-je envisager de changer? Y aurait-il des avantages?

1 votes

Nous avons eu plus de problèmes avec toutes les variantes mod_proxy_* et utilisons mod_jk en production avec succès, pour Tomcat (5.5, 6, 7) et JBoss/WildFly.

90voto

cherouvim Points 18550

Une comparaison des avantages/inconvénients pour ces modules existe sur http://blog.jboss.org/

mod_proxy

* Avantages :
      o Pas besoin de compilation et de maintenance de module séparé. mod_proxy,
        mod_proxy_http, mod_proxy_ajp et mod_proxy_balancer font partie de
        la distribution standard d'Apache 2.2+
      o Possibilité d'utiliser les protocoles http, https ou AJP, même au sein du
        même équilibreur.
* Inconvénients :
      o mod_proxy_ajp ne prend pas en charge les tailles de paquets supérieures à 8K.
      o Équilibreur de charge basique
      o Ne prend pas en charge le clustering en modèle de domaine

mod_jk

* Avantages :
      o Équilibreur de charge avancé
      o Détection avancée de défaillance de nœud
      o Prise en charge de grandes tailles de paquets AJP
* Inconvénients :
      o Besoin de construire et maintenir un module séparé

2 votes

Et si vous utilisez Apache 2.0?

11 votes

Je trouve cette entrée de blog utile.

0 votes

"Besoin de construire et de maintenir un module séparé" il est livré avec Apache donc vous n'avez pas besoin de construire quelque chose...

29voto

Vinko Vrsalovic Points 116138

Si vous souhaitez rester sur le territoire d'Apache, vous pouvez également essayer le plus récent mod_proxy_ajp, qui utilise le protocole AJP pour communiquer avec Tomcat au lieu du vieux HTTP traditionnel, mais qui exploite mod_proxy pour faire le travail.

0 votes

Merci. Mais savez-vous ce que le proxy_ajp offrirait de plus que jk?

2 votes

Oui, tous les contrôles et (relativement) facilite de configuration de mod_proxy, avec les avantages de vitesse du protocole AJP (au lieu d'utiliser HTTP)

2 votes

AJP utilise un format binaire donc en théorie, il est censé offrir de meilleures performances. Je n'ai jamais testé les performances d'AJP par rapport à la mise en proxy HTTP.

8voto

4voto

The Fool Points 420

AJP vs HTTP

Lorsque vous utilisez mod_jk, vous utilisez le AJP. Lorsque vous utilisez mod_proxy, vous utiliserez HTTP ou HTTPS. Et c'est essentiellement ce qui fait toute la différence.

Le protocole Apache JServ (AJP)

Le protocole Apache JServ (AJP) est un protocole binaire qui peut proxy les requêtes entrantes d'un serveur web vers un serveur d'application qui se trouve derrière le serveur web. AJP est un protocole très sécurisé et ne devrait jamais être exposé à des clients non fiables, qui pourraient l'utiliser pour accéder à des informations sensibles ou exécuter du code sur le serveur d'application.

Avantages

  • Facile à mettre en place car la bonne transmission des en-têtes HTTP n'est pas requise.
  • Il est moins gourmand en ressources car les paquets TCP sont transmis sous forme binaire au lieu d'effectuer un échange HTTP coûteux.

Inconvénients

  • Les données transférées ne sont pas chiffrées. Il ne doit être utilisé que dans des réseaux de confiance.

Protocole de transfert hypertexte (HTTP)

HTTP fonctionne comme un protocole de requête-réponse dans le modèle de calcul client-serveur. Par exemple, un navigateur web peut être le client et une application s'exécutant sur un ordinateur hébergeant un site web peut être le serveur. Le client envoie un message de requête HTTP au serveur. Le serveur, qui fournit des ressources telles que des fichiers HTML et d'autres contenus, ou effectue d'autres fonctions pour le compte du client, renvoie un message de réponse au client. La réponse contient des informations sur l'état d'achèvement de la requête et peut également contenir le contenu demandé dans son corps de message.

Avantages

  • Peut être chiffré avec SSL/TLS le rendant adapté au trafic à travers des réseaux non fiables.
  • Il est flexible car il permet de modifier la requête avant de la transmettre. Par exemple, en définissant des en-têtes personnalisés.

Inconvénients

  • Plus de surcharge car la bonne transmission des en-têtes HTTP doit être assurée.
  • Plus gourmand en ressources car la requête est entièrement analysée avant d'être transmise.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X