Нужен ли мне другой сервер для запуска node.js - PullRequest
0 голосов
/ 13 ноября 2018

извините, если это неправильный вопрос на этом форуме, но я просто застрял и мне нужен совет.У меня есть общий хостинг и облачный хостинг-сервер с установленным node.js.Я хочу разместить свой веб-сайт как обычно, но я также хочу добавить чат в реальном времени и отслеживание местоположения с помощью node.js. Я запутался в том, что читаю в нескольких местах, потому что node.js сам по себе является сервером, но не предназначен для размещения веб-сайтов?Так я должен запустить 2 разных сервера?Один для веб-сайта и один для запуска node.js?Когда я настраиваю облачный с запущенным скриптом node.js, я больше не могу получить доступ к веб-страницам.

Что для меня лучший способ добиться этого, потому что я просто хожу по кругу.Также есть способ, которым я могу настроить сервер на своем ПК, запустить и протестировать оба этих сервера вместе, чтобы я мог увидеть, что нужно, и заставить его работать, так как это остановит меня при заказе серверов, которые мне не нужны.

Большое спасибо за любую помощь или совет.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Есть несколько способов добиться этого, но есть один популярный подход.

Вы можете использовать NGINX в качестве фронтального веб-сервера и перенаправлять запросы в серверную службу Node.

Например, в NGINX вы настроите свою восходящую службу следующим образом:

upstream lucyservice {
  server 127.0.0.1:8000;
  keepalive 64;
}

8000, который вы видите выше, является лишь примером, вы можете запустить службу Node на другом порту.

Далее в вашем конфиге (в разделе конфигурации сервера) вы будете перенаправлять запросы к вашему сервису следующим образом:

location / {
  proxy_pass http://lucyservice;
}

Служба You Node может работать в диспетчере процессов, например, forever / pm2 и т. Д. В кластере может быть запущено несколько служб Node в зависимости от количества процессоров на вашей машине и т. Д.

Итак, подведем итоги - ваш фронтальный веб-сервер будет обрабатывать весь трафик через порт 80 (HTTP) и или 443 (HTTPS), и это будет передавать запросы вашей службе Node, работающей на любом из указанных вами портов. Все это может происходить на одном сервере или нескольких, если вам нужно / желание.

0 голосов
/ 13 ноября 2018

Узел может обслуживать веб-страницы с использованием такой инфраструктуры, как Express, но может вызывать конфликты, если работает на том же порту, что и другая программа веб-сервера (Apache и т. Д.).Одним из решений может быть обслуживание ваших веб-страниц через веб-сервер через порт 80 (или 443 для HTTPS) и запуск сервера вашего узла через другой порт для отправки информации туда и обратно.

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