@Denoro55

Как правильно выставить порт на хостинге если запускать сервер на Node.js?

Как правильно выставить порт на хостинге если запускать сервер на Node.js?
var http = require('http');
var app = http.createServer(function(req,res){
	res.writeHead(200);
	res.write('Hello Denis');
	setTimeout(function(){
		res.write('Hello Timeout');
		res.end();
	},3000)
}).listen(8080);


Допустим я тестирую сервер на локалхосте на любом порту ( в данном примере 8080 ), а если поставить и запустить на хостинге порт должен быть названием домена? Если домен называется nodejs.ru например то порт какой писать? Или что-то другое нужно?
  • Вопрос задан
  • 2917 просмотров
Пригласить эксперта
Ответы на вопрос 3
Deissh
@Deissh
I like Python, Node.JS, Go, pain, bugs and my cat.
Лучше использовать nginx в роли proxy pass.
Достаточно не плохая статья
Ответ написан
Комментировать
Jump
@Jump
Системный администратор со стажем.
а если поставить и запустить на хостинге порт должен быть названием домена?
Порт - цифровой идентификатор пакета.
Используется для того, чтобы хост который получает пакет, знал что с ним делать - какому приложению отдать.

В общем можете использовать любой порт, на ваш вкус.
Главное чтобы этот порт не использовался другими приложениями на вашем сервере.
Ответ написан
Комментировать
Softovick
@Softovick
программист, администратор
Странные вопросы для написавшего веб-приложение :)
Во первых, если это сайт - то считается по умолчанию 80 порт для http и 443 для https (с шифрованием и сертификатами).
Во вторых, сильно зависит от того, какой это сайт. Если в нем много статичных файлов, типа картинок, файлов, или это SP, то есть отдается просто html - то настоятельно рекомендуют использовать Nginx как прокси. В остальных случаях не обязательно, но все же тоже рекомендуют. То есть Nginx запускают на портах 80/443, а в конфигурации виртуального хоста прописывают прокси на тот порт, на котором запущено приложение Node.JS. Какой это порт, определяете сами, главное чтобы он не совпадал с зарезервированными системными портами и портами, занятыми другими приложениями. В этом случае основную нагрузку по отдаче контента несете более производительный Nginx, а ваше приложение генерирует динамический контент. Желательно еще, чтобы по порту отвечало только локально на сервере, тогда проблем меньше будет.
В третьих, если это все же не сайт (сервис REST API например) или не совсем сайт (скажем SPA на html и бекенд на Node.JS выполняются какие-либо задачи, ну или другие варианты) - то порт может быть абсолютно любым на ваш вкус. Главное чтобы он не пересекался с другими, так как обычно на одном порту может висеть только одно приложение.
Дополнение: некоторые используют Docker или более современный вариант CoreOS. в этом случае какой порт использует виртуально ваше приложение, прописываете в настройках. Соответственно можно например запускать несколько контейнеров с разными приложениями на разных портах, связывая при необходимости их друг с другом (все тот же Nginx например и прокси на адрес контейнера с вашим приложением).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы