Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Запущенный сервер node.js в браузере ничего не выдает (https://javascript.ru/forum/node-js-io-js/78399-zapushhennyjj-server-node-js-v-brauzere-nichego-ne-vydaet.html)

aleksmir 08.09.2019 07:42

Запущенный сервер node.js в браузере ничего не выдает
 
Добрый день!
Изучаю node.js по примерам.
Есть арендованная VDS. Там создал поддомен testnode.aleksmir.ru.
Сделал простенький скрипт server.js
В консоли запустил node server.js, порт например 8002.
Но в браузере по адресу testnode.aleksmir.ru:8002 ничего не выдает. Просто крутится, после таймаута сбрасывает.
В чем может быть проблема?

Порты прослушиваются:
https://forforum.aleksmir.ru/2019/09...7_08-52-38.jpg

На локалхосте скрипт server.js отрабатывает нормально:
https://forforum.aleksmir.ru/2019/09...7_09-01-01.jpg

Хотя команда netstat -at не показывает 8002 в списке открытых портов:
https://forforum.aleksmir.ru/2019/09...2019-07-01.txt

Все крутится под nginx, но опыта настройки нет, статьи почитал, но конфигурация слишком сложная много уровневая. Как проще можно было бы изменить конфигурационный файл, чтобы слушал то, что надо?

Вот общий конфиг: https://forforum.aleksmir.ru/2019/09...2019-09-01.txt

Конфиг для поддомена: https://forforum.aleksmir.ru/2019/09...2019-09-01.txt

Audaxviator 08.09.2019 12:31

Ну как, есть рас сервер
server {
  listen   443 ssl;
  server_name    aleksmir.ru;

  ssl_certificate      cert.pem;
  ssl_certificate_key  cert.key;

  location / {
    proxy_pass http://127.0.0.1:...
  }
}

есть два сервер
server {
  listen   80;
  server_name    testnode.aleksmir.ru;

  location / {
    proxy_pass http://127.0.0.1:...
  }
}

Один proxy_pass на 127.0.0.1 с одним портом, другой - туда же с другим портом.

aleksmir 09.09.2019 05:22

Audaxviator,
первый сервер слушает порт 443, второй порт 80, перенаправляют запросы на разные порты, что не так? К тому же эти конфиги создаются автоматически панелью ISPmanager при создании роддоме, они проверены временем и работают. И вопрос был не об этом.

aleksmir 09.09.2019 06:00

Цитата:

при создании поддомена
T9)

Audaxviator 09.09.2019 06:17

Ну ты тогда у этой ISPmanager и спрашивай - я-то даже и не знаю, кто это. Я знаю, как работает NGINX, Node.js и эти ваши интернеты. Но ответ был не про это.

aleksmir 18.09.2019 18:53

Ну моим упущением здесь явилось то, что я не привел текст самого файла server.js, причина была в нем.
Было так:
server.listen(8002, 'localhost');
а надо было так:
server.listen(8002);
Теперь все работает.

Audaxviator 19.09.2019 22:39

Вообще-то, это одно и то же. Если нет второго аргумента (или второй - функция), то localhost по умолчанию. Можно напейсать '0.0.0.0' - и это будет значить - "пофигу, принимаю на любой IP" (ибо у одного компюктера может быть сколь угодно много IP).
Но дело не в этом. Всё очень просто.

Может быть пять серверов в конфиге NGINX, и для всех он слушает 80-й порт. А они для него, естественно, находятся по адресу 127.0.0.1 (хотя им можно напейсать и разные - 127.0.0.99, 127.0.0.100, 127.0.0.101 - ну да ладно) и слушают каждый свой порт - 3000, 3001, 3002 и т.д.
Ну так вот. Запрос-то к Нгинксу поступает на IP-адрес этого VPS (один IP), а как он должен распознавать - какому из этих серверов какой запрос предназначен? Для этого и есть строчка server_name - в каждом сервере конфига своя строчка. Чего в соответствующем заголовке http-запроса будет написано (так сказать, %BASE_URL%) - туда запрос и будет перенаправлен ("проксирован", как выражаются на моём месте грамотные люди).
Вот и вся арихметика.


Часовой пояс GMT +3, время: 06:57.