Запущенный сервер 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 |
Ну как, есть рас сервер
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 с одним портом, другой - туда же с другим портом. |
Audaxviator,
первый сервер слушает порт 443, второй порт 80, перенаправляют запросы на разные порты, что не так? К тому же эти конфиги создаются автоматически панелью ISPmanager при создании роддоме, они проверены временем и работают. И вопрос был не об этом. |
Цитата:
|
Ну ты тогда у этой ISPmanager и спрашивай - я-то даже и не знаю, кто это. Я знаю, как работает NGINX, Node.js и эти ваши интернеты. Но ответ был не про это.
|
Ну моим упущением здесь явилось то, что я не привел текст самого файла server.js, причина была в нем.
Было так: server.listen(8002, 'localhost'); а надо было так: server.listen(8002); Теперь все работает. |
Вообще-то, это одно и то же. Если нет второго аргумента (или второй - функция), то 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, время: 16:13. |