Les serveurs sur le Web sont tous appelés serveurs Web, mais chacun a des divisions de travail différentes.
nginx est couramment utilisé comme service de contenu statique et serveur proxy (pas votre proxy FQ), transmettant les requêtes externes directement aux services d'application suivants (tomcat, django ou quelque chose comme ça), Tomcat est plus utilisé pour créer un conteneur d'application, permettant à l'application Web Java de s'y exécuter, correspondant au même niveau que jboss, jetty et d'autres choses.
Mais rien n'est sûr. Nginx peut également fournir des fonctions d'application via le développement de modules, et Tomcat peut également fournir directement des services HTTP. Il est généralement utilisé dans les intranets et les scénarios qui ne nécessitent pas de petits services tels que le contrôle de flux.
Apache est de moins en moins utilisé, et ses fonctions se chevauchent généralement davantage avec nginx.
À proprement parler, Apache/Nginx devrait être appelé "Serveur HTTP" alors que Tomcat est un "Serveur d'applications", ou plus précisément, un "Conteneur d'applications" Servlet/JSP (applications développé dans d'autres langages comme Ruby/Python ne peut pas fonctionner directement sur Tomcat).
Un serveur HTTP s'occupe de la transmission et du contrôle d'accès au niveau du protocole HTTP, donc sur Apache/Nginx, vous pouvez voir des fonctions telles que le proxy et l'équilibrage de charge. Le client accède aux ressources stockées sur le serveur (fichiers HTML, fichiers image, etc.) via le serveur HTTP. Grâce à la technologie CGI, le contenu traité peut également être distribué via un serveur HTTP, mais un serveur HTTP ne transmet toujours fidèlement les fichiers du serveur au client que via le protocole HTTP.
Le serveur d'applications est un conteneur pour l'exécution d'applications. Il doit d'abord prendre en charge le runtime du langage de développement (pour Tomcat, il s'agit de Java) pour garantir que l'application puisse s'exécuter normalement sur le serveur d'applications. Deuxièmement, il doit prendre en charge les spécifications liées aux applications, telles que les bibliothèques de classes et les fonctionnalités de sécurité. Pour Tomcat, il est nécessaire de fournir des bibliothèques de classes standard, des interfaces, etc. requises pour le fonctionnement de JSP/Sevlet. Pour plus de commodité, les serveurs d'applications intègrent souvent les fonctions du serveur HTTP, mais ils ne sont pas aussi puissants que les serveurs HTTP professionnels. Par conséquent, les serveurs d'applications s'exécutent souvent derrière le serveur HTTP, exécutent des applications et convertissent le contenu dynamique en contenu statique via le serveur HTTP distribué. clients.
Pour plus d'articles techniques liés à Nginx, veuillez visiter la colonne Tutoriel Nginx pour apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!