La différence entre Apache et Tomcat et pourquoi ils doivent travailler ensemble.


Date de publication:1er janvier 2021.



INFOMARTION > La différence entre Apache et Tomcat et pourquoi ils doivent travailler ensemble.

Vue d'ensemble.

Je voudrais décrire les différences entre Apache et Tomcat et la raison pour laquelle ils doivent être liés, question à laquelle je n'ai pas trouvé de réponse satisfaisante lorsque j'étais nouveau, même après avoir demandé à mes aînés et fait des recherches sur Internet. On dit parfois qu'Apache est un serveur web (qui exécute un traitement statique) et que Tomcat est un conteneur de servlets (qui exécute un traitement dynamique) (comme me l'a dit un collègue senior lorsque j'étais nouveau), mais Tomcat a aussi des fonctions de serveur web si on l'examine attentivement. On pourrait alors penser que Tomcat est tout ce dont vous avez besoin. Cela nous ramène finalement à la question de savoir pourquoi Apache et Tomcat doivent être liés ensemble. Pour ceux qui le font, je voudrais expliquer les différences entre Apache et Tomcat et pourquoi ils doivent travailler ensemble.

Table des matières

  1. Raisons de lier Apache et Tomcat
  2. Caractéristiques d'Apache
  3. Caractéristiques de Tomcat
  4. considération
  5. résumé

1. Raisons de lier Apache et Tomcat

La première conclusion à tirer est la différence dans la spécialisation des rôles. Apache est spécialisé dans les fonctions de serveur web, tandis que Tomcat est spécialisé dans le traitement dynamique à l'aide de Java.

La raison pour laquelle on écrit qu'il y a une différence de spécialisation est que Tomcat lui-même a aussi des fonctions de serveur web. C'est peut-être un peu extrême, mais s'il existe un système dans lequel Apache et Tomcat sont liés, il n'est pas impossible de réaliser presque le même système en utilisant uniquement Apache et uniquement Tomcat.

1-1. Quelles sont les différences en matière d'expertise ?

En ce qui concerne les différences dans la spécialisation des rôles, nous pensons que cela est difficile à comprendre car la comparaison est soudainement faite entre Apache et Tomcat. Il est plus facile de comprendre si vous pensez en termes de Tomcat et de serveurs DB. Cela peut sembler extrême, mais il est possible de créer une application en utilisant uniquement Tomcat sans mettre en place un serveur de base de données. Par exemple, vous pouvez gérer les informations relatives aux utilisateurs dans un fichier xml ou une propriété et créer une application qui authentifie la connexion sur la base de ces informations. Cependant, en réalité, si vous regardez les systèmes web généraux, la plupart des systèmes gèrent les informations des utilisateurs dans une base de données et renvoient les données de Tomcat au serveur de base de données. Si vous réfléchissez à la raison, c'est parce que vous pouvez développer des applications plus efficacement de cette manière.

Parfois, les gens expliquent les "avantages" et les "inconvénients" de la coopération entre Apache et Tomcat, mais il ne s'agit pas ici des avantages et des inconvénients. Lorsqu'on leur demande quels sont les "avantages" et les "inconvénients" de lier Tomcat et les serveurs DB, ils répondent que les rôles sont différents au départ. Il en va de même pour Apache et Tomcat, qui ont des rôles différents au départ.

1-2. Qu'est-ce qu'Apache ?

Ayant mentionné que les rôles sont différents, je voudrais maintenant expliquer quels sont les rôles d'Apache et de Tomcat.

Une fois encore, Apache est officiellement connu sous le nom de serveur HTTP Apache. Apache est un serveur web, mais en résumé, son rôle est d'analyser les demandes.

Plus précisément, il s'agit de .

  • Filtrer (autoriser/refuser les demandes) pour des adresses IP spécifiques
  • Redirection pour des URLs spécifiques.
  • Rejet d'URLs spécifiques
  • Cryptage des communications par SSL
  • Attribution de processus à des serveurs spécifiques sur demande

Ce qui précède n'est qu'un exemple, et il existe d'autres fonctions, mais en résumé, le rôle d'Apache (le serveur web) est de traiter les demandes reçues des utilisateurs.

C'est le rôle de Tomcat de décider du type de réponse à donner en fonction de la demande spécifique. Le point qui ne doit pas être mal compris est qu'Apache n'interdit pas la création de réponses. Tout comme Tomcat travaille avec un serveur de base de données et maintient des données simples (par exemple des listes de messages) du côté Tomcat, Apache n'a aucun problème à mettre en œuvre des pages dynamiques tant qu'il s'agit de réponses simples. L'essentiel est de savoir ce qui peut être traité le plus efficacement et géré de manière ordonnée.

1-3. Qu'est-ce que Tomcat ?

Le nom officiel de Tomcat est "Apache Tomcat". Tomcat est un conteneur de servlets, mais pour expliquer son rôle en quelques mots, il est responsable du traitement dynamique en fonction des demandes.

Plus précisément, il s'agit de .

  • Enregistrer les données en fonction des informations demandées.
  • Créez des pages et des réponses dynamiques en fonction des informations de la demande.
  • Déterminez l'utilisateur en fonction des informations de la demande et créez une réponse différente pour chaque utilisateur.

En gros, c'est le travail de Tomcat de renvoyer à l'utilisateur des pages qui ne sont pas des pages fixes.

C'est un autre point qui ne doit pas être mal compris : cela ne signifie pas que les pages statiques (par exemple html) ne doivent pas être placées dans Tomcat. Si la philosophie de conception de l'équipe consiste à gérer tout le html du côté de Tomcat, il n'y a aucun problème à placer des pages statiques sur Tomcat. Dans ce cas également, l'essentiel est de savoir ce qui peut être traité le plus efficacement et géré de manière ordonnée.

2. Caractéristiques d'Apache

J'aimerais présenter certaines des caractéristiques d'Apache. Apache fournit un certain nombre de modules (fichiers dans lesquels les processus sont emballés). Chargez le module et décrivez les valeurs de configuration requises pour utiliser ses fonctions. Je voudrais décrire les modules disponibles.

2-1. Capacité à traiter des demandes simultanément.

Le module "mpm_prefork_module" est le module pertinent. Il existe également "mpm_worker_module" et "mpm_event_module", bien que la fonctionnalité soit presque identique.

Définissez les valeurs comme suit.

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>

Décrit de cette manière, lorsque le serveur est démarré, "5" processus peuvent être lancés et "5" peuvent être traités en parallèle en même temps, et jusqu'à "250" peuvent être traités en parallèle lorsqu'un grand nombre de demandes arrivent.

2-2. Réécriture de l'URL de la demande

Le module "rewrite_module" est le module concerné.

Définissez les valeurs comme suit.

<IfModule rewrite_module>
  RewriteEngine on
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Ainsi, si une demande arrive en http, elle sera renvoyée à l'utilisateur pour qu'il fasse une nouvelle demande en https.

2-3. Contrôle d'accès par adresse IP

Celui-ci est légèrement différent du module, mais il contrôle l'accès par adresse IP.

La description suivante empêchera l'accès depuis des IP autres que "1.0.16.0/20", "1.0.64.0/18" et "1.1.64.0/18".

<Directory />
    order deny,allow
    deny from all
    allow from 1.0.16.0/20
    allow from 1.0.64.0/18
    allow from 1.1.64.0/18
</Directory>

3. Caractéristiques de Tomcat

Je voudrais expliquer la fonctionnalité de Tomcat.

3-1. Capacité à renvoyer des pages web de manière dynamique en utilisant Java.

L'expertise de Tomcat réside dans sa "capacité à renvoyer des pages web de manière dynamique en utilisant Java". En général, vous ne créez pas tout le traitement Java vous-même, mais vous l'utilisez en conjonction avec des bibliothèques Java (modules dans Apache) créées par diverses organisations.

  • Générer dynamiquement des réponses en fonction des paramètres de la demande de l'utilisateur.
  • Sortir les fichiers journaux dans un format spécifique.
  • Créer et modifier des fichiers Excel
  • Déterminez si le fichier zip a un mot de passe.

Des processus complexes tels que ceux décrits ci-dessus peuvent être réalisés simplement en insérant une bibliothèque et en appelant cette dernière. Le rôle de Tomcat est de faciliter la mise en œuvre de ces processus complexes.

4. considération

Nous avons expliqué que la différence entre Apache et Tomcat est la "spécialisation des rôles", mais Apache (Apache HTTP Server) et Tomcat (Apache Tomcat) sont tous deux créés par la même Apache Software Foundation. La raison en est peut-être qu'Apache est écrit en C et Tomcat en Java, qui sont des langages différents, mais la raison pour laquelle ils ne sont pas combinés en un seul est peut-être qu'ils jouent des rôles différents."

La page d'accueil de Tomcat était assez étendue, et il fonctionne également bien en tant que serveur web.

http://tomcat.apache.org/

  • SSL/TLS (cryptage des communications)
  • SSI (la possibilité d'intégrer différents HTML dans un autre HTML)
  • Rewrite (fonction de réécriture d'URL)

Apache est un serveur web très performant, mais de nombreuses fonctionnalités ne sont pas utilisées. La fondation Apache Software Foundation a donc fait en sorte que Tomcat puisse fonctionner indépendamment sans Apache. Cependant, il est toujours préférable d'inclure Apache si vous avez besoin d'un contrôle détaillé des requêtes.

5. résumé

Les différences entre Apache et Tomcat et les raisons pour lesquelles ils doivent travailler ensemble sont décrites.

Je pensais que la réponse à cette question était difficile à comprendre car Tomcat est un serveur web complet. Il est bon de réfléchir à la coopération entre Apache et Tomcat, en gardant à l'esprit que la fonction de Tomcat en tant que serveur web n'est pas sa fonction principale (il n'est pas spécialisé comme serveur web).

Merci d'avoir regardé jusqu'à la fin.