2016-05-17 4 views
0
var express = require('express'); 
var app = express(); 

app.listen(3000, function() { 
console.log('Example app listening on port 3000!'); 
}); 

app.get('/getCode', function (req, res) { 

res.send("hai"); 
}) 

сервер запускается успешно, но при вызове ip: 3000/getCode не дает ответа.Сервер Node.js работает нормально на локальном, но не на сервере

я открыл порт 3000, и я на сервере Ubuntu AWS ec2

inbound rules in aws

+0

ping IP? можно ли его достичь? – Subburaj

+1

сделал 'curl 127.0.0.1: 3000/getCode' внутри работы оболочки? – Sridhar

+0

Первое, что нужно проверить, - это если вы можете подключиться к самому серверу. Установите ссылки или веб-браузер консоли elinks (он доступен из aws-репо, поэтому apt-get или yum в зависимости от вашей ОС). Затем, используя ссылки или ссылки, попробуйте просмотреть свой сервер с самого aws. Если это работает, то что-то между вашим экземпляром aws и вашим ПК блокирует порт 3000. Проверьте оба параметра безопасности aws и локальные брандмауэры (проверьте как тот, который на вашем ПК, если он есть, и ваш маршрутизатор) – slebetman

ответ

0

изменить источник из пользовательских IP в любом месте и в 0.0.0.0. это позволит вам получить доступ к этому api с любого IP-адреса, как только вы убедитесь, что это работает, вы можете изменить его на пользовательский IP-адрес на ip-адрес, к которому вы хотите получить доступ.

+0

сделано, что все еще нет ответа – ArUn

0

попробуйте установить порт, как это:

var port = process.env.PORT || 3000; 

app.listen(port, function() { 
console.log('Example app listening on port:' + port); 
}); 

Объяснение: При размещении приложения на другую службу (например, Heroku, Nodejitsu и AWS), хост может иногда самостоятельно настроить переменную process.env.PORT для вас ,

+0

, что не может быть здесь, как и в ec2, у вас есть полный контроль над вашим сервером, и ваше приложение запускается в указанном вами порту в вашем приложении – AJS

+0

может быть, но это имеет место в AWS Elastic Beanstalk. Кроме того, это более безопасный способ определить порт, а не жесткий код. Как и в дальнейшем, можно изменить порт, просто изменив переменную среды '' '$ export PORT = 4000''' – Nivesh

+1

да, но это не проблема, с которой он сталкивается, так или иначе, похоже, что он допустил ошибку с помощью брандмауэра , – AJS

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