Поэтому я настроил NGINX для обслуживания статических веб-сайтов для каждого пользователя в GNU/Linux Debian 8, используя следующее соглашение об именах: http://domain/~username . Общедоступная веб-папка каждого пользователя находится в соответствующем домашнем каталоге, и именно там они должны будут хранить свои проекты Node.js.

проблема

Это все хорошо, но как я могу удержать разных пользователей от запуска проектов, использующих конфликтующие номера портов в одном домене? Или, более кратко, как я могу заставить каждого пользователя использовать только один уникальный номер порта в Node.js? Или мне вообще нужно? Может ли пользовательский экземпляр Node.js каким-то образом быть захвачен, а затем преобразован во что-то, соответствующее вышеуказанному соглашению об именах? Если так, то как?

Пример: если пользователь JSmith создает веб-сайт с использованием Node.js и запускает его, веб-сайт должен быть опубликован по www.example.com/~jsmith независимо от того, какие другие настройки домена или порта JSmith использовал в своем приложении Node.js.

1 ответ1

0

Node.js обычно действует как собственный HTTP-сервер, верно? Так что, если они все выполнят свои проекты node.js на том же сервере Ubuntu и при условии, что у них нет корневых привилегий, они будут открывать порты TCP-приемника в диапазоне временных портов (49152–65536) на IP-адресе этого сервера. адрес (а). Стек TCP/IP ядра Linux в Ubuntu гарантирует, что два активных процесса не смогут одновременно открыть один и тот же порт. Чтобы подключиться к своим экземплярам приложения node.js, им нужно будет подключиться к http://www.example.com:port/ (где порт - это тот порт, который они смогли открыть).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .