Je me suis demandé: "Quelle est la différence entre un serveur Web et un serveur d'applications?"
Tout d'abord, qu'est-ce qu'un serveur? L'histoire. Le serveur est un serveur en anglais, c'est-à-dire qu'il fournit et fournit. Selon IT Glossary, un serveur en est un autre dans un réseau informatique. Un ordinateur qui fournit ses propres fonctions, services, données, etc. à l'ordinateur. Lorsque nous parcourons une page Web, demandez au serveur "Je veux voir cette page!" Depuis notre PC. Ensuite, le serveur retournera une page disant "Oui, ça!". Vous pouvez maintenant voir la page Web heureuse. Normalement, chaque machine serveur ou logiciel serveur a une fonction ou un service fixe à fournir à l'extérieur, et un format de données ou protocole pris en charge (accord de communication). Ensuite, il est appelé "○○ serveur" avec les types de fonctions à fournir, telles que "serveur DB", "serveur Web" et "serveur d'application".
Le rôle du serveur Web est de recevoir les demandes de contenu du navigateur et de renvoyer une réponse au navigateur. Si la demande à ce moment est un contenu Web statique (contenu qui affiche le même contenu d'affichage à moins d'être mis à jour, comme des fichiers HTML, CSS et image), le serveur Web la traite et renvoie une réponse. Dans le cas d'un contenu Web dynamique qui nécessite un traitement pour modifier le contenu d'affichage de chaque client, le serveur Web envoie une requête au serveur d'applications. Ensuite, le résultat renvoyé par le serveur d'applications est renvoyé en tant que réponse. Les serveurs Web bien connus incluent Nginx et Apache.
Le serveur d'applications exécute l'application que nous avons créée. La requête envoyée par le serveur Web est transmise du serveur d'application à l'application et le résultat traité par l'application est renvoyé au serveur Web. Dans le cas d'un développement dans un environnement local, seul le serveur d'application est mis en place, mais dans l'environnement de production, en plaçant le serveur web devant l'application, il arrive souvent que le traitement du contenu statique soit alourdi.
Les serveurs d'applications Rails typiques sont Unicorn, Thin, Rainbows, Puma, etc. La requête envoyée par le serveur Web est transmise du serveur d'application à l'application Rails et le résultat traité par l'application Rails est renvoyé au serveur Web. Pour le développement dans un environnement local, configurez uniquement un serveur d'application pour Rails tel que Puma (celui qui est généralement effectué dans l'environnement de développement). En revanche, dans l'environnement de production, le serveur Web est souvent placé devant l'application Rails pour supporter la charge du traitement de contenu statique. Cela permet au serveur Web de traiter plusieurs applications à la fois, de rendre les actifs rapidement et de gérer de nombreuses choses qui se produisent avec chaque demande.
Rack Parlons de Rack ici. Rack fait le lien entre le framework Ruby et le serveur d'application et sert de lien entre eux. En utilisant Rack, le serveur convertit la requête HTTP envoyée sous une forme compréhensible par l'application. Inversement, la réponse de l'application est convertie en HTTP via Rack et renvoyée au serveur. Rack vous permet de combiner librement serveurs et frameworks.
Je vais résumer le contenu jusqu'à présent. Le serveur Web reçoit la demande envoyée par le navigateur et, s'il s'agit d'un contenu Web statique, renvoie une réponse au navigateur. Cependant, si la demande est un contenu Web dynamique, elle n'est pas traitée par le serveur Web et envoyée au serveur d'applications. Ensuite, le serveur d'applications informe l'application via le middleware. Lorsque le processus est terminé, les résultats sont renvoyés au navigateur dans l'ordre inverse.
Différence entre le serveur Web et le serveur d'applications Glossaire informatique Différences entre le serveur Web et le serveur d'applications dans le développement de Rails (traduction)
Recommended Posts