Настройка сервера Keystone.js с использованием обратного прокси-сервера Nginx в Ubuntu 16.04

В этом уроке мы будем настраивать веб-сервер с обратным прокси. Мы будем использовать CMS Keystone.js, хорошо известную инфраструктуру веб-приложений, основанную на Express.js. Обратный прокси-сервер, который мы будем использовать, - это Nginx, бесплатный обратный прокси-сервер с открытым исходным кодом, а также HTTP-сервер. База данных, которую мы будем использовать, - MongoDB, база данных документов NoSQL. Это потребует, чтобы у вас был домен с настроенными записями. Если у вас нет этого набора, продолжайте, позаботьтесь об этом и вернитесь к этому уроку.

Установка узла

Сначала мы установим Node.js, который является интерпретатором Javascript на основе движка Chrome V8 Javascript.

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

Установка Nginx

Далее мы установим Nginx, наш обратный прокси.

sudo apt update
sudo apt install nginx

Это обновит списки пакетов и установит Nginx. После завершения установки мы настроим наш проект узла.

Инициализация нашего проекта Keystone

Создайте наш проект узла. Для этого просто создайте новую папку.

mkdir website

Затем мы создадим наш package.jsonфайл. Для этого просто запустите npm initв своем терминале, заполните поля и ответьте « yes» для подтверждения. После того как вы создали package.jsonфайл, мы установим следующие модули узлов.

sudo npm install -g generator-keystone
sudo npm install -g yo

Как только они закончат загрузку, запустите следующее.

yo keystone

Заполните обязательные поля. Она будет просить вас за project name, то template engine, emailна панели управления, и так далее. Если вы не знаете, что выбрать, то по умолчанию будет хорошо. После того, как вы настроили настройку keystone, мы можем проверить, работает ли наш сервер, набрав node keystoneдля запуска вашего приложения. По умолчанию ваше приложение будет запущено через localhostпорт 3000. Обратите внимание, что если у вас не установлен MongoDB, база данных будет вам недоступна сразу. Вы можете узнать, как установить его позже в руководстве.

Вот основной макет каталога для Keystone.js:

  • /lib - Здесь вы будете хранить свои пользовательские библиотеки и другой код.

  • /models- Здесь вы будете хранить модели базы данных вашего приложения. KeystoneJS использует MongoDB в качестве поставщика базы данных.

  • /public - Здесь будут храниться ваши статические файлы (CSS, JS, изображения и т. Д.).

  • /routes/api - Здесь будут храниться контроллеры API вашего приложения.

  • /routes.views - Контроллеры представления приложений будут храниться здесь.

  • /templates - Здесь будут храниться все файлы шаблонов вашего приложения.

  • /updates - Здесь будут храниться ваши сценарии миграции.

  • package.json - Это ваш файл конфигурации npm, который сгенерировал для нас генератор.

  • keystone.js - Наш основной стартовый файл, мы запускаем его при запуске сайта.

Инициализация нашей базы данных

Как упоминалось ранее, нашей базой данных, которую мы будем использовать, является MongoDB, которая представляет собой надежную NoSQL, документно-ориентированную базу данных. Если вам уже установили MongoDB, вы можете пропустить этот раздел. Если нет, то вот как установить его на Ubuntu 16.04.

Импортируйте открытый ключ, используемый для пакета mongoDB.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Создайте файл списка, используемый для установки пакета.

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Обновите свои списки пакетов, используя apt.

sudo apt update

Наконец, установите MongoDB.

sudo apt install mongodb-org -y

Когда установка завершится, запустите MongoDB.

sudo service mongod start

Это запустит процесс MongoDB на порту 27017.

MongoDB будет использоваться во всем приложении и использоваться для хранения информации, которую мы используем для наших моделей, например, для Userмодели. Keystone использует его как свою базу данных, и в настоящее время вы не можете использовать других поставщиков баз данных.

Установка PM2

Теперь пришло время установить PM2 (Process Manager 2.) PM2 - это менеджер процессов для приложений Node.js в форме модуля npm. Это простой способ управлять приложениями и запускать их в фоновом режиме. Поскольку он находится в NPM, все, что нам нужно сделать, чтобы установить его, - запустить следующее.

sudo npm install pm2 -g

Это говорит npm установить его глобально, чтобы мы могли использовать его где угодно в нашей системе.

Запуск / Управление приложением на PM2

Ранее мы запускали наше веб-приложение с node keystone. С PM2 все немного по-другому. Теперь мы запускаем наше приложение узла со следующим.

pm2 start keystone.js

Это добавит наше приложение PM2 в наш список процессов, и появится небольшое окно, чтобы вы могли видеть, что оно действительно в сети. Обратите внимание на поле с надписью idдля вашего процесса. Держите это близко, поскольку мы будем делать много ссылок на это позже.

Чтобы увидеть журналы для вашего приложения.

pm2 logs [id]

Например, pm2 logs 0если это ваше первое приложение PM2.

Чтобы остановить ваше веб-приложение в любое время.

pm2 stop [id]

Чтобы полностью удалить ваше приложение.

pm2 delete [id]

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

pm2 monit

Это покажет некоторую основную информацию, такую ​​как использование ОЗУ, использование ЦП и время работы.

Отличная особенность, которую предлагает PM2 watching. По сути, наблюдение - это когда PM2 автоматически обнаруживает изменения в любом из файлов в том же каталоге, что и ваш стартовый файл, и автоматически перезапускает ваше приложение. Чтобы включить его, просто перезапустите приложение, но передайте ему флаг наблюдения.

pm2 restart [id] --watch

Чтобы отключить наблюдение после того, как оно было включено, просто повторите ту же команду, и наблюдение будет отключено.

В этом уроке мы уйдем от просмотра.

Настройка обратного прокси

Убедитесь, что у вас установлен Nginx. Если по какой-то причине это не так, обратитесь к описанным выше шагам.

Настройте параметры брандмауэра. На Ubuntu, ufwэто официальный брандмауэр. По умолчанию соединения заблокированы на порту 80. Нам нужно добавить исключение для Nginx для порта 80, на котором будет работать наше веб-приложение.

sudo ufw allow 'Nginx HTTP'

Убедитесь, что ваш сервер Nginx работает.

systemctl status nginx

В Activeразделе, если вы видите active (running), то все готово. Если нет, попробуйте перезапустить службу.

systemctl restart nginx

Удалите файл конфигурации Nginx по умолчанию.

sudo rm /etc/nginx/sites-available/default

Создайте новый и просто назовите его node.

sudo nano /etc/nginx/sites-available/node

Вставьте следующее в файл и замените его example.comдоменом вашего сайта.

listen 80;

server_name example.com;

    location / {

        proxy_set_header   X-Forwarded-For $remote_addr;

        proxy_set_header   Host $http_host;

        proxy_pass         "http://127.0.0.1:3000";
    }
}

Обратите внимание, что proxy_passобозначает IP, на котором локально работает наше приложение Keystone, которое находится localhostна порте 3000. listen 80это порт, на который мы хотим направить приложение, в данном случае это порт 80.

Затем нам нужно создать символическую ссылку или символическую ссылку на папку с именем sites-enabled. Разница между sites-enabledи в sites-availableтом, что sites-enabledна самом деле загружается Nginx.

sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node

Теперь ваш файл конфигурации в sites-availableбудет готов к использованию, и он будет загружен из sites-enabled. Чтобы применить настройки, чтобы они вступили в силу, просто перезапустите Nginx.

sudo systemctl restart nginx

Наконец, перезапустите приложение PM2

pm2 restart [id]

Теперь вы можете перейти к своему домену в браузере и увидите Welcome to Keystoneэкран с панелью для входа.

Если вы видите это, значит, вы успешно настроили производственный веб-сервер Node.js. Если нет, то вы, возможно, сделали шаг неправильно, и вы можете вернуться назад и тщательно следовать каждому шагу.

Вы можете узнать больше о Nginx, посетив их сайт .

Надеюсь, вам понравился этот учебник, и надеюсь, что он помог вам настроить собственный веб-сервер для работы на Vultr VPS.



Leave a Comment

Как установить Anchor CMS на CentOS 7 LAMP VPS

Как установить Anchor CMS на CentOS 7 LAMP VPS

Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.

Как установить TextPattern CMS 4.6.2 на VBS FreeBSD 11 FAMP

Как установить TextPattern CMS 4.6.2 на VBS FreeBSD 11 FAMP

Используете другую систему? TextPattern CMS 4.6.2 - это простая, гибкая, бесплатная система управления контентом (CMS) с открытым исходным кодом, которая позволяет веб-дизайнерам

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Как установить Subrion 4.1 CMS на Ubuntu 16.04 LAMP VPS

Как установить Subrion 4.1 CMS на Ubuntu 16.04 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Установка Bolt CMS на CentOS 7

Установка Bolt CMS на CentOS 7

Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.

Как установить PyroCMS на Ubuntu 16.04

Как установить PyroCMS на Ubuntu 16.04

Используете другую систему? PyroCMS - это CMS с открытым исходным кодом, написанная на PHP. Исходный код PyroCMS размещен на GitHub. В этом руководстве хорошо прогуляться по всему

Как установить Backdrop CMS 1.8.0 на Debian 9 LAMP VPS

Как установить Backdrop CMS 1.8.0 на Debian 9 LAMP VPS

Использ��ете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Как установить Pagekit 1.0 CMS на Debian 9 LAMP VPS

Как установить Pagekit 1.0 CMS на Debian 9 LAMP VPS

Используете другую систему? Pagekit 1.0 CMS - это красивая, модульная, расширяемая и легкая, бесплатная и с открытым исходным кодом система управления контентом (CMS) с

Как установить Subrion 4.1 CMS на Debian 9 LAMP VPS

Как установить Subrion 4.1 CMS на Debian 9 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Как установить TextPattern CMS 4.6.2 на Ubuntu 16.04 LAMP VPS

Как установить TextPattern CMS 4.6.2 на Ubuntu 16.04 LAMP VPS

Используете другую систему? TextPattern CMS 4.6.2 - это простая, гибкая, бесплатная система управления контентом (CMS) с открытым исходным кодом, которая позволяет веб-дизайнерам

Как установить CMS за октябрь 1.0 на Debian 9 LAMP VPS

Как установить CMS за октябрь 1.0 на Debian 9 LAMP VPS

Используете другую систему? Октябрь 1.0 CMS - это простая и надежная, бесплатная система управления контентом (CMS) с открытым исходным кодом, построенная на платформе Laravel.

Как установить dotCMS на Ubuntu 16.04

Как установить dotCMS на Ubuntu 16.04

Используете другую систему? DotCMS - это система управления контентом корпоративного уровня с открытым исходным кодом, написанная на Java. Он содержит почти все функции, необходимые т

Как установить Subrion 4.1 CMS на CentOS 7 LAMP VPS

Как установить Subrion 4.1 CMS на CentOS 7 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Как установить Automad CMS на CentOS 7

Как установить Automad CMS на CentOS 7

Используете другую систему? Automad - это система управления контентом на основе файлов с открытым исходным кодом (CMS) и механизм шаблонов, написанный на PHP. Исходный код Automad я

Как установить WonderCMS на FreeBSD 12

Как установить WonderCMS на FreeBSD 12

Используете другую систему? WonderCMS - это быстрая и небольшая плоская файловая CMS с открытым исходным кодом, написанная на PHP. Исходный код WonderCMS размещен на Github. Это руководство будет

Установите Tiki Wiki CMS Groupware на Ubuntu 18.04 LTS

Установите Tiki Wiki CMS Groupware на Ubuntu 18.04 LTS

Используете другую систему? Введение Tiki Wiki CMS Groupware, также известная как Tiki, является бесплатной и открытой системой управления контентом вики. Особенность Тикиса

Как установить BoltWire в Ubuntu 18.04

Как установить BoltWire в Ubuntu 18.04

Используете другую систему? Введение BoltWire - это бесплатная и легкая система управления контентом, написанная на PHP. По сравнению с большинством других контент-менеджеров

Как установить ApostropheCMS в Ubuntu 18.04

Как установить ApostropheCMS в Ubuntu 18.04

ApostropheCMS - это современная система управления контентом, построенная на NodeJS с акцентом на расширяемые инструменты контекстного редактирования. В этом уроке вы узнаете

Как установить BigTree CMS 4.2 на VBS FreeBSD FAMP

Как установить BigTree CMS 4.2 на VBS FreeBSD FAMP

Используете другую систему? BigTree CMS 4.2 - это быстрая и легкая бесплатная система управления контентом (CMS) корпоративного уровня с открытым исходным кодом и широким

Как установить Microweber на CentOS 7

Как установить Microweber на CentOS 7

Используете другую систему? Microweber - это CMS с открытым исходным кодом и онлайн-магазин. Исходный код микропровода размещен на GitHub. Это руководство покажет вам

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше