Назад | Перейти на главную страницу

Маршрутизация на различные серверы node.js на одном компьютере

Я хотел бы настроить несколько серверов node.js на одном компьютере (но прослушивать разные порты) для разных проектов (чтобы я мог вытащить любой, чтобы редактировать код, не затрагивая другие). Однако я хочу иметь доступ к этим веб-приложениям из браузера, не вводя номер порта, и вместо этого отображать разные URL-адреса на разные порты: например, 45.23.12.01/app -> 45.23.12.01:8001.

Я рассматривал возможность использования узел-http-прокси для этого, но он еще не поддерживает SSL. Мне кажется, что nginx может быть наиболее подходящим. Я никогда раньше не настраивал nginx - какая конфигурация мне нужна? Примеры конфигурационных файлов, которые я видел, относятся только к поддоменам, которых у меня нет.

В качестве альтернативы, есть ли лучший (стабильный, беспроблемный) способ размещения нескольких приложений под одним IP-адресом?

Сначала начните с чтения вики-документация. Это очень тщательно и включает образцы. Я не буду давать вам полную конфигурацию nginx, но вот часть, относящаяся к вашему вопросу.

server {
    listen 80;
    server_name example.com;

    location /foo {
        proxy_pass http://localhost:9000;
    }

    location /bar {
        proxy_pass http://localhost:9001;
    }

    location /baz {
        proxy_pass http://localhost:9002;
    }
}

Должно быть понятно, что там происходит. Каждый расположение проксирует указанный URI на соответствующий сервер node.js.

nginx может быть подходящим вариантом. По крайней мере, это то, что у меня запущено на моем сервере. Пример конфигурации / описания можно найти здесь: https://blog.noort.be/2011/03/07/node-js-on-nginx.html

Вы в основном настраиваете разные сайты в nginx, и каждый сайт направляет свой трафик в приложение nodejs, работающее на другом порту.