Почему некоторые приложения должны использовать другие веб-серверы, такие как Apache, а узел или express - нет? - PullRequest
0 голосов
/ 01 апреля 2020

Я не понимаю, почему при создании приложения узла / express мне не нужно использовать другой веб-сервер, но при работе с Java, Spring или python бэкэндом обычно веб-сервер, такой как nginx или apache используется. Я не понимаю, что делают Apache и nginx, разве они не обрабатывают HTTP-запросы так же, как мы делаем в узле или express? Но потом в Spring есть контроллеры, которые обрабатывают запросы, так зачем нам запускать JBoss или Apache?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

В старые времена существовало строгое разделение между «приложением» и «сервером приложений» / «веб-сервером». Серверы приложений (например, JBoss) обеспечивали конфигурацию ресурсов (например, соединения с БД) и т. Д. c. к приложению, развернутому на них. Веб-серверы (например, Apache) предоставили конфигурацию для нескольких размещенных на них веб-приложений.

В настоящее время, в эпоху автономных приложений (что означает: приложения, которые содержат встроенный HTTP-сервер), вы часто надеваете не нужен отдельный веб-сервер. Но такие инструменты, как Nginx, все еще используются, например, в качестве балансировщиков нагрузки и т. Д. c. Серверы приложений (JBoss, et c.) В настоящее время не часто используются, поскольку встроенные HTTP-серверы можно настраивать, не прося Ops-людей сделать это за вас - это быстрее и удобнее.

0 голосов
/ 01 апреля 2020

Если вы пишете приложение NodeJS, тогда вам «не нужен» другой сервер, за исключением, может быть, когда вы масштабируете развертывание, готовое к работе

Простой ответ заключается в том, что express, Apache, nginx и JBoss - все веб-сервер . Поскольку все они являются веб-серверами, каждый из них может выполнять работу друг друга. Однако у каждого из них есть свои сильные и слабые стороны, поэтому зачастую они могут работать вместе. Например, обычной практикой является размещение express сервера позади nginx, чтобы позволить nginx обрабатывать балансировку нагрузки, состояния c ресурсов и завершение SSL, что очень хорошо подходит для nginx, но, возможно, допускает падение соединений API и веб-сокетов к express серверу, который, как правило, хорош express.

Разработчик может выбрать Apache, если он работает с PHP, потому что интеграция так хороша, но выбрать JBoss, если он работают с Java EE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...