Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.09.2019, 07:42
Новичок на форуме
Отправить личное сообщение для aleksmir Посмотреть профиль Найти все сообщения от aleksmir
 
Регистрация: 08.09.2019
Сообщений: 4

Запущенный сервер 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
Ответить с цитированием
  #2 (permalink)  
Старый 08.09.2019, 12:31
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

Ну как, есть рас сервер
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 с одним портом, другой - туда же с другим портом.
Ответить с цитированием
  #3 (permalink)  
Старый 09.09.2019, 05:22
Новичок на форуме
Отправить личное сообщение для aleksmir Посмотреть профиль Найти все сообщения от aleksmir
 
Регистрация: 08.09.2019
Сообщений: 4

Audaxviator,
первый сервер слушает порт 443, второй порт 80, перенаправляют запросы на разные порты, что не так? К тому же эти конфиги создаются автоматически панелью ISPmanager при создании роддоме, они проверены временем и работают. И вопрос был не об этом.
Ответить с цитированием
  #4 (permalink)  
Старый 09.09.2019, 06:00
Новичок на форуме
Отправить личное сообщение для aleksmir Посмотреть профиль Найти все сообщения от aleksmir
 
Регистрация: 08.09.2019
Сообщений: 4

Цитата:
при создании поддомена
T9)
Ответить с цитированием
  #5 (permalink)  
Старый 09.09.2019, 06:17
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

Ну ты тогда у этой ISPmanager и спрашивай - я-то даже и не знаю, кто это. Я знаю, как работает NGINX, Node.js и эти ваши интернеты. Но ответ был не про это.
Ответить с цитированием
  #6 (permalink)  
Старый 18.09.2019, 18:53
Новичок на форуме
Отправить личное сообщение для aleksmir Посмотреть профиль Найти все сообщения от aleksmir
 
Регистрация: 08.09.2019
Сообщений: 4

Ну моим упущением здесь явилось то, что я не привел текст самого файла server.js, причина была в нем.
Было так:
server.listen(8002, 'localhost');
а надо было так:
server.listen(8002);
Теперь все работает.
Ответить с цитированием
  #7 (permalink)  
Старый 19.09.2019, 22:39
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

Вообще-то, это одно и то же. Если нет второго аргумента (или второй - функция), то 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%) - туда запрос и будет перенаправлен ("проксирован", как выражаются на моём месте грамотные люди).
Вот и вся арихметика.

Последний раз редактировалось Audaxviator, 19.09.2019 в 22:41.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
<noscript> ничего не выводит при отключенном javascript в браузере freerun888 Общие вопросы Javascript 15 07.09.2015 17:03
Как прочитать параметры файла JPEG ещё в браузере, до загрузки на сервер? Webnode Общие вопросы Javascript 6 13.01.2014 20:44
Почему ничего не отображается в браузере? Kot_new Events/DOM/Window 1 11.08.2013 09:19
Проблема с загрузкой файла на сервер shkarbatov Серверные языки и технологии 8 13.08.2011 01:27
iconv(). Сервер выдает notice Invis1ble Серверные языки и технологии 11 08.11.2010 13:05