2016-08-27 11 views
1

Сервер Nodejs, который установлен на моем VPS, доступен только в моей сети. Люди из внешнего мира не могут получить к нему доступ. Если его онлайн, он должен быть доступен во всем мире или нигде. Что делать?Nodejs на VPS только работает в моей сети

код в моем файле JS:

var app = require('express')(); 
var http = require('http').Server(app); 

// Also tried http.listen(3000, "0.0.0.0", function(){ 
http.listen(3000, function(){ 
    console.log('Server listening to port 3000'); 
}); 
+0

Я думаю, что это проблема конфигурации сети, а не конкретный узел. –

+0

почти 10 человек сказали то же самое, что они не могут загрузить страницу, я испытываю то же самое, если отключу Wi-Fi и переключитесь на мобильные данные на своем телефоне. Страница навсегда загружается –

+1

Все в порядке с этой конфигурацией. У вас есть что-нибудь в порту 80? Попробуйте с этим, по какой-либо причине, возможно, порт 3000 каким-то образом заблокирован в вашем vps? Или, может быть, у вас что-то не так с настройкой vps. Потому что эта команда должна работать. (Я предполагаю, что вы предоставили некоторые маршруты, потому что если нет, то ничего не должно быть возвращено) – Mort

ответ

0

Неплохое добавление IP-адреса сайта в качестве второго параметра функции прослушивания.

http.listen(3000, "xx.xxx.xx.xxx", function(){ 
    console.log('Server listening to port 3000'); 
}); 
1

Ну, в вашем вопросе вы говорите, что вы хотите, чтобы приложение Node, чтобы быть доступным для всех в мире, или вообще никто. Однако, если вы являетесь поставщиком VPS, вы ограничиваетесь только тем, что работаете во внутренней сети, тогда невозможно сделать то, что вы просите.

Сетевые правила просто не позволят.

С учетом сказанного, однако, я сделаю рекомендацию по изменению вашего экспресс-приложения. Вот как это должно выглядеть:

let express = require('express'); 

let app = express(); 

app.listen(3000); 

Код выше свяжут приложения Node к порту 3000 в наиболее простым способом с помощью экспресс непосредственно. Это, вероятно, то, что вы хотите.

также: Обратите внимание, что если вы намерены построить государственную службу, вы должны, вероятно, сделать один из двух вещей:

  • Bind ваш экспресс-сервер на порт 80 (для HTTP) или
  • Используйте веб-сервер для прокси-запросов от порта 80 (HTTP) до порта 3000 (локальный).
+0

Мне не нужна вышеприведенная HTTP-переменная вообще? –

+0

Мне также нужно запустить socket.io, который требует http –

+0

. Я показываю вам, как просто запустить экспресс-приложение просто. Если вам нужно использовать socketio/other stuff, вы можете добавить все, что вам нужно. – rdegges

 Смежные вопросы

  • Нет связанных вопросов^_^