AdonisJs — это веб-фреймворк Node.js с глотком свежего воздуха и капелькой элегантного синтаксиса. Они предпочитают радость разработчика и стабильность всему остальному.

На момент написания этой статьи была выпущена предварительная версия Adonisjs v5. Развертывание adonisjs v5 немного отличается от развертывания версии 4. Я скоро напишу об этом.

Создать экземпляр GCP

Если у вас нет учетной записи Google Cloud, вы можете получить ее, нажав на ссылку ниже.
ПОЛУЧИТЕ БЕСПЛАТНО 12 МЕСЯЦЕВ КРЕДИТ GCP на 300 долларов США

Теперь, когда у вас есть работающая учетная запись GCP, давайте создадим наш первый экземпляр.

Если все пойдет по плану, вы должны увидеть что-то вроде изображения ниже:

Теперь щелкните значок меню и найдите Compute Engine, как показано ниже:

Хорошо. Прохладный. Теперь мы находимся на панели управления экземпляром виртуальной машины Google Compute Engine. Давайте создадим новый экземпляр для нашего проекта adonisjs. Взгляните на изображение ниже:

После нажатия на нее появится диалоговое окно, в котором вы можете настроить свой экземпляр. На изображениях ниже показано, как это сделать.

Поскольку мы хотим использовать операционную систему Ubuntu, давайте выберем Ubuntu.

Выберите нужную версию. I willрекомендуется v18.04 plus.

Установите сетевые теги. Просто отметьте два протокола, как показано ниже, чтобы разрешить трафик со всех из них, поскольку это веб-приложение.

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

Установить сервер Apache

Мы будем использовать apache для проксирования нашего приложения Adonis. Вы можете использовать Nginx, чтобы сделать то же самое.

Итак, давайте подключим SSH к нашему экземпляру и установим apache2. Но перед этим давайте обновим все устаревшие пакеты Ubuntu с помощью этой команды.

sudo apt-get update

Хорошо. Прохладный. Давайте установим наш сервер Apache, выполнив команду ниже:

sudo apt-get install -y apache2

Вот и все! Когда вы посещаете свой внешний IP-адрес, вы должны увидеть экран ниже:

Установить узел

Мы установим узел v14.*. Я написал статью о том, как обновить или установить Node здесь.

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

Теперь установите Node с помощью apt-get, как показано ниже:

sudo apt-get install -y nodejs

Прохладный. Теперь вы можете подтвердить версии NPM и Node, выполнив приведенные ниже команды соответственно.

npm -v 
//Result will be 6.14.4
node -v 
//Result will be v14.2.0

Разверните наше приложение

Давайте создадим папку нашего проекта внутри каталога /var/www, как показано ниже:

cd /var/www && sudo mkdir adonisjs && cd adonisjs

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

Давайте подключимся к нашему экземпляру по SSH, если вы еще не вошли в систему, и клонируем репозиторий с помощью приведенной ниже команды.

sudo git clone your_repository_link .

Примечание, у нас есть начальный (.), который означает, что мы хотим клонировать репозиторий в каталог, в котором мы находимся.

Установите зависимости NPM

sudo npm install

Установите клиент Adonis

sudo npm i -g @adonisjs/cli

Давайте подтвердим, что наш Adonis cli был установлен правильно, выполнив команду ниже.

adonis

Вы должны увидеть изображение ниже, если все работает нормально.

Теперь мы можем создать наш файл .env.

sudo cp .env.example .env

После этого нам нужно сгенерировать ключ нашего приложения.

sudo adonis key:generate

Теперь мы готовы обслуживать наш проект Adonis. Однако Adonis будет обслуживаться в нашей локальной среде с IP-адресом 127.0.0.1 на порту 3333.

Когда это будет сделано, мы все равно не сможем получить доступ к нашему приложению через наш домен или внешний IP-адрес. Итак, нам нужно проксировать все запросы с нашего внешнего IP-адреса через порт 80 на 127.0.0.1:3333, где обслуживается наше приложение Adonis.

Настройка прокси

Чтобы настроить наш прокси, нам нужно отредактировать нашу конфигурацию. Вот код для обновления нашего VirtualHost для порта 80.

Во-первых, давайте откроем наш файл конфигурации следующим образом:

cd /etc/apache2/sites-available && sudo nano 000-default.conf

Затем измените DocumentRoot /var/www/html на приведенный ниже код:

#DocumentRoot /var/www/html
ProxyRequests On
ProxyPass / http://127.0.0.1:3333/
ProxyPassReverse / http://127.0.0.1:3333/

Нажмите Control X, затем Y, затем Enter, чтобы сохранить изменения и выйти из редактора.

Включить прокси

Apache имеет много модулей, связанных с ним, которые доступны, но не включены в новой установке. Давайте включим те, которые мы будем использовать в этом уроке.

Модули, которые нам нужны, это сам mod_proxy и несколько его дополнительных модулей, которые расширяют его функциональность для поддержки различных сетевых протоколов. В частности, мы будем использовать:

  • mod_proxy, основной прокси модуль Apache для перенаправления соединений; это позволяет Apache выступать в качестве шлюза к нижележащим серверам приложений.
  • mod_proxy_http, который добавляет поддержку проксирования HTTP-соединений.
  • mod_proxy_balancer и mod_lbmethod_byrequests, которые добавляют функции балансировки нагрузки для нескольких внутренних серверов.

Вот команды для запуска:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests

После этого нам нужно перезапустить наш сервер Apache.

sudo service apache2 restart

Теперь откройте новую вкладку и введите свой внешний IP, вы должны увидеть экран ниже:

Бум. Мы правильно проксировали адрес нашего сервера приложений Adonis. Пришло время запустить наше приложение Adonis и снова открыть внешний IP-адрес.

cd /var/www/adonisjs && sudo adonis serve --dev

Мы должны увидеть это изображение ниже:

Дааа! Мы успешно развернули наше приложение Adonis на GCP.

В моей следующей статье я покажу вам, как правильно обслуживать ваше приложение Adonis с помощью процесса, чтобы мы поддерживали приложение в рабочем состоянии 24/7.