Почему мой сервер не работает?Я продолжаю получать ERR_CONNECTION_TIMED_OUT при доступе к IP-адресу? - PullRequest
0 голосов
/ 08 апреля 2019

Прошу прощения за мое счастье здесь.Я установил простое приложение для веб-сайтов через AngularJS и NodeJS в Ubuntu 14.04.После запуска моего сервера IP-адрес не загружается и выдает ошибку сбоя подключения.

  • Мне удалось успешно подключиться к серверу Ubuntu на AWS

    * 1006.*
  • успешно установил npm, node и pull git repo

  • попытался запустить сервер, введя "sudo nodejs server.js" в папке API

  • сервер запускается, но IP-адрес не загружает проект .. нет ошибок в консоли ..

Это были мои шаги в Терминале от начала до конца после регистрациина мой SSH-сервер:

ubuntu@ip-172-31-25-241:~$ sudo mkdir src
ubuntu@ip-172-31-25-241:~$ cd src
ubuntu@ip-172-31-25-241:~/src$ sudo git init (after installing git)
ubuntu@ip-172-31-25-241:~/src$ sudo git pull origin master (pulled repo)
ubuntu@ip-172-31-25-241:~/src$ sudo apt-get install npm
ubuntu@ip-172-31-25-241:~/src$ sudo apt-get install nodejs
ubuntu@ip-172-31-25-241:~/src$ cd API
ubuntu@ip-172-31-25-241:~/src/API$ ls
server.js
ubuntu@ip-172-31-25-241:~/src/API$ sudo nodejs server.js
Server Started on http://localhost:8080
Press CTRL + C to stop server

Вот мой код из моего файла server.js, запрошенный @JoKeRxbLaCk:

// initialize Express
var express = require('express');
// run Express
var app = express();

app.use(express.static(__dirname + './../APP'));

app.get('/', function(req, res) {
    res.send('Express is running!');
});


app.listen(80, function() {
    console.log('Server Started on http://localhost:8080');
    console.log('Press CTRL + C to stop server');
});

Когда я пытаюсь выполнить команду "nodejs server.js"вместо "sudo nodejs server.js" я получаю эту ошибку:

ubuntu@ip-172-31-25-241:~/src/API$ nodejs server.js

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EACCES
    at errnoException (net.js:901:11)
    at Server._listen2 (net.js:1020:19)
    at listen (net.js:1061:10)
    at Server.listen (net.js:1135:5)
    at EventEmitter.listen (/home/ubuntu/src/node_modules/express/lib/application.js:617:24)
    at Object.<anonymous> (/home/ubuntu/src/API/server.js:15:5)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

Я ожидаю, что сервер не выдаст ошибку и мой сайт загрузится :( Пожалуйста, помогите! Я знаю, что я пропалшаг, но не могу понять, где.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

В AWS вы должны вручную открыть любые порты, которые хотите использовать.
Вот руководство по этому Открытому порту на AWS Ec2

0 голосов
/ 08 апреля 2019

Вы пытаетесь запустить свое приложение на порте 80. В Linux порты <1024 являются привилегированными портами и требуют повышенных привилегий для запуска. </p>

Поэтому ваше приложение будет работать как sudo, поскольку вы работаете с повышенными привилегиями,Без sudo у вас нет разрешения на использование порта 80.

Поэтому вам нужно либо убедиться, что пользователь, запускающий ваше приложение, имеет правильные привилегии, либо предоставить вашему приложению что-то вроде Apache или nginx, работающего напорт 80 и перенаправляет его в приложение через непривилегированный порт (например, 8080).

...