Я пытаюсь запустить экспресс-веб-сервер Nodejs на сервере Ubuntu.
Проблема в том, что он не запущен. Программа получила 1 маршрут "/" и возвращает "Hello world". Когда я запускаю программу с помощью nodemon, я получаю этот журнал:
[nodemon] 1.18.10
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node index.js`
Server started on port 3000
И когда я запускаю «netstat -na | grep: 3000», я получаю:
tcp 0 0 SERVERIPHIDDEN:3000 0.0.0.0:* LISTEN
Я слушаю порт 3000 ip - это ip серверов.
Что-нибудь, что я сделал не так? или я пропустил шаг?
код:
var express = require('express')
var app = express()
app.set('port', (process.env.PORT || 5000))
app.use(express.static(__dirname + '/public'))
app.get('/', function(request, response) {
response.send('Hello World!')
})
app.listen(app.get('port'), function() {
console.info("Node app is running at localhost:" + app.get('port'))
})
Все в цифровом океане.
Процесс тестирования:
1) pm2 запускает app.js Все запускается нормально статус => онлайн.
2) В замазке "curl localhost: 5000" Получает "Привет, мир!
3) Вставить "curl IP:5000" Получает "Привет, мир! <
4) В браузере Google Chrome IP: 5000 Получает "ERR_CONNECTION_REFUSED"
@JoseMarfil, спасибо за ответ! Но это ничего не изменило.
Что не так с нетстатом? Вы просто слушаете на локальном хосте (а не на общедоступном IP-адресе), и вы можете связаться со своим http-сервером только с самого сервера. Вероятно, это происходит потому, что ваш http-сервер указывает «localhost» как ip, когда вызывается функция «listen». Кроме того, прослушивание порта 80 требует запуска сервера с правами root. Это сделает ваш сервер уязвимым.
@ Radar155 Я изменил порт и изменил IP-адрес на IP-адрес сервера, но он все еще не работает ..
попробуй без указания ip адреса
@ Radar155 Не сработало.
Пожалуйста, выложите код веб-сервера
@Radar155 Готово, перезагрузите.
в коде ничего особенного. Как вы его тестируете? Я имею в виду, ты сказал "он не работает", почему ты так говоришь? Вы сделали запрос от клиента? Какой клиент? Браузер, завиток? В удаленном? В местном? Какой ip/хост?
@ Radar155 Просмотрите обновление вопроса в разделе «Процесс тестирования».
Вы уверены, что «IP» является общедоступным IP-адресом? Выполнение запросов curl с использованием ssh-соединения, созданного шпатлевкой (правильно ли шпатлевка является клиентом ssh для Windows?), В основном похоже на выполнение запроса с самого сервера.
@Radar155 да, это адрес инета, который я получаю от ifconfig
это странно. как насчет брандмауэров?
@ Radar155 Не знаю, как это проверить.





в качестве обходного пути попробуйте запустить сервер с узлом вместо nodemon. это должно быть что-то вроде node <startup script>.