Я разрабатываю приложение Koa, которое представляет собой новую веб-инфраструктуру, разработанную командой Express. Вот пошаговое руководство по развертыванию приложения koa.js на вашем сервере Amazon Web Service (AWS) Ubuntu.

Во-первых, запустите экземпляр Ubuntu на AWS. Затем вам нужно изменить группу безопасности.

В противном случае, если вы попадете в общедоступный домен в браузере, он застрянет в состоянии «Подключение» до истечения времени ожидания. И сайт недоступен, как показано на скриншоте ниже:

По умолчанию группа мастера запуска имеет только тип ssh.

Нажмите кнопку «Изменить», чтобы добавить правило входящего трафика для HTTP-порта 80 и HTTPS-порта 443:

Во-вторых, подключитесь к своему инстансу по ssh, установите nodejs согласно официальной документации:

$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt-get install -y nodejs

В-третьих, мы используем Nginx в качестве обратного прокси-сервера:

$ sudo apt-get update
$ sudo apt-get install nginx

Откройте файл конфигурации и отредактируйте его, как показано ниже. Будьте осторожны, чтобы не пропустить точку с запятой:

server { 
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/yourApp;
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

Сохраните файл и перезапустите службу Nginx:

$ sudo systemctl restart nginx

Наконец, клонируйте свой репозиторий git по пути /var/www/yourApp, вы получите отказ в разрешении, поэтому измените владельца папки. Вы можете заменить часть ubuntu на whoami:

$ sudo chown -R ubuntu /var/www

Запустите свой сервер, например, простой app.js:

var koa = require('koa');
var app = koa();

// logger

app.use(function *(next){
  var start = new Date;
  yield next;
  var ms = new Date - start;
  console.log('%s %s - %s', this.method, this.url, ms);
});

// response

app.use(function *(){
  this.body = 'Hello World';
});

app.listen(3000);

Запустите сервер:

$ node app.js

Откройте браузер и перейдите в общедоступный домен:

Сделанный. Оставьте комментарий ниже, если у вас есть какие-либо вопросы :)