Maison  >  Article  >  développement back-end  >  La différence entre Tomcat et Nginx, projet Apache HTTP Server

La différence entre Tomcat et Nginx, projet Apache HTTP Server

不言
不言original
2018-07-07 15:51:041642parcourir

Cet article présente principalement la différence entre Tomcat, Nginx et Apache HTTP Server Project. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Apache, en référence. Un projet sous l'Apache Software Foundation - Apache HTTP Server Project ; est également un logiciel serveur HTTP open source (bien sûr, il peut également être utilisé comme serveur proxy de messagerie et serveur proxy TCP général).
Le serveur HTTP est essentiellement une application - il s'exécute généralement sur le serveur, lie l'adresse IP du serveur et écoute un certain port TCP pour recevoir et traiter les requêtes HTTP, de sorte que le client (généralement IE, Firefox, Chrome) peut obtenir des pages Web (format HTML), des documents (format PDF), de l'audio (format MP4), de la vidéo (format MOV) et d'autres ressources sur le serveur via le protocole HTTP.
La figure suivante décrit ce processus :

La différence entre Tomcat et Nginx, projet Apache HTTP ServerNon seulement le serveur HTTP Apache et Nginx, mais également de simples serveurs HTTP sont implémentés dans les bibliothèques de classes incluses dans la plupart des langages de programmation utilisés par les développeurs : HttpServer (Java HTTP. Server) Python SimpleHTTPServer peut exécuter un serveur HTTP très facilement en utilisant ces bibliothèques. Elles peuvent toutes fournir des services HTTP en liant des adresses IP et en écoutant sur les ports TCP.
Apache Tomcat est un autre projet de la Fondation Apache. Par rapport au serveur HTTP Apache, Tomcat peut générer dynamiquement des ressources et les renvoyer au client. Le serveur HTTP Apache et Nginx peuvent renvoyer le contenu d'un certain fichier texte au client via le protocole HTTP, mais le contenu de ce fichier texte est fixe - c'est-à-dire que peu importe quand et qui y accède, le contenu obtenu est complètement similaire , nous appelons de telles ressources ressources statiques.
Les ressources dynamiques sont à l'inverse. Le contenu obtenu lorsqu'il est accédé par différents clients à des moments différents est différent : une page contenant l'heure actuelle et une page affichant l'adresse IP actuelle du serveur HTTP Apache et Nginx eux-mêmes ne le sont pas. prend en charge la génération de pages dynamiques, mais elles peuvent être prises en charge via d'autres modules (tels que via des scripts Shell, PHP, Python pour générer dynamiquement du contenu). Si vous souhaitez utiliser des programmes Java pour générer dynamiquement du contenu de ressources, il est difficile de le faire en utilisant ce type de serveur HTTP. La technologie Java Servlet et la technologie Java Server Pages dérivée permettent aux programmes Java d'avoir également la capacité de traiter des requêtes HTTP et de renvoyer du contenu (contrôlé dynamiquement par le programme). Tomcat est le conteneur (Conteneur) qui prend en charge l'exécution des applications Servlet/JSP :

La différence entre Tomcat et Nginx, projet Apache HTTP Server

Tomcat fonctionne sur JVM Comme le serveur HTTP, il lie une adresse IP et écoute le port TCP. Il contient également les accusations suivantes :

    Gérer le cycle de vie du programme Servlet
  • Mapper l'URL au servlet spécifié pour le traitement
  • Travailler avec le programme Servlet pour traiter les requêtes HTTP—— Générez un objet HttpServletResponse basé sur la requête HTTP et transmettez-le au servlet pour traitement, et renvoyez le contenu généré par l'objet HttpServletResponse dans le servlet au navigateur
  • Bien que Tomcat puisse également être considéré comme un serveur HTTP, il sera généralement toujours utilisé avec Nginx : séparation des ressources dynamiques et statiques - utilisez la fonction proxy inverse de Nginx pour distribuer les requêtes : toutes les requêtes de ressources dynamiques sont transmises à Tomcat, tandis que les ressources statiques Les requêtes (telles que des images, des vidéos, des fichiers CSS, JavaScript, etc.) ) sont directement renvoyées au navigateur par Nginx, ce qui peut réduire considérablement la pression sur Tomcat. Équilibrage de charge. Lorsque la pression commerciale augmente, une seule instance Tomcat peut ne pas suffire à la gérer. À l'heure actuelle, plusieurs instances Tomcat peuvent être démarrées pour une expansion horizontale, et la fonction d'équilibrage de charge de Nginx peut distribuer les requêtes à différentes instances via des algorithmes.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

nginx sur la différence entre racine et alias

Classification illimitée et commentaires imbriqués infinis en PHP

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn