NodeJS разместить два приложения на одном сервере, используя два IP-адреса и один и тот же порт 443 - PullRequest
1 голос
/ 24 апреля 2020

У меня есть два разных приложения nodejs + expressjs с разными сертификатами SSL. Я получил другой IP-адрес для моего второго приложения. У меня включен только один порт, т. Е. 443. Когда я запускаю первое приложение, оно запускается успешно, но когда я пытаюсь запустить второе, оно сбрасывает порт, который уже используется. Обратите внимание, что я запускаю оба приложения на разных IP-адресах.

1 Ответ

2 голосов
/ 24 апреля 2020

Это не имеет никакого отношения к количеству используемых вами интерфейсов / IP-адресов. Порт на машине может использоваться только один раз. В этом случае ваше первое приложение уже слушает только его.

Лучший способ - использовать веб-сервер или обратный прокси-сервер (например, HAProxy, nginx, Apache), прослушивающий все интерфейсы для обработки входящих сообщений. запрашивает порт 443 и пересылает трафик c в ваши приложения на основе IP-адреса - или даже лучшего (суб) доменного имени - запроса. Затем вы можете запустить оба приложения на отдельном порту> 1024, для которого не требуется права root для привязки (что также является проблемой безопасности):

Пример:

Request to IP 10.1.10.1 →  +---------------------+  → Forwarded to app 1:80441
                           |  Reverse Proxy:443  |                       
Request to IP 10.1.10.2 →  +---------------------+  → Forwarded to app 2:80442
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...