Задать вопрос
@m4son

Зачем делать прокси на pm2?

Начал изучать pm2 и не могу понять. В интернете запускают pm2 и в nginx делают прокси на него.

Зачем так делать? Можно ли для деплоя использовать только pm2?
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Простой 6 комментариев
Решения вопроса 1
@hello_my_name_is_dany
Backend Developer (Node.js, PHP, C#)
Всё довольно просто. NGINX - это веб-сервер, а PM2 - менеджер процессов Node.js.
NGINX умеет работать с доменами, поддоменами, умеет делать маршрутизацию определённых роутов к определённым сервисам, в него легко добавить сертификаты SSL/TLS для HTTPS/HTTP2. PM2 ничего этого не умеет, потому что он не является веб-сервером, он буквально просто управляет процессами Node.js, всё остальное остаётся либо на разработчике, либо на frontend-сервере (напр. NGINX). Если не использовать NGINX или другой frontend-сервер, то вам придётся писать работу с доменами, как-то отдавать статику, например, клиентское приложение (HTML, CSS, JS, картинки и тд), подключить сертификаты к node.js приложению, думать, как поддерживать несколько портов (80/443). В конце концов это просто небезопасно, все процессы, которые прослушивают порты до 1000, должны иметь особые привилегии, если в вашем коде найдут дыру, то смогут исполнить любой код с этими самыми привилегиями, что может оказаться очень плачевно. А в схеме с nginx ваши процессы node.js могут быть запущены на более высоких портах (1000+) и запускаться от имени пользователя, у которого минимальные права, и если хакер и найдёт дыру в вашем приложении, полностью захватить сервер не сможет. За дырами в безопасности nginx следят очень многие люди и компании, поэтому их относительно быстро закрывают, а в вашем приложении следите за ними только вы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы