Как развернуть приложение Node.js на VPS Digital Ocean

фото Тейлор Вик

на Unsplash

Итак, вы написали свое приложение Node.js и вам нужен способ запустить его онлайн? Здесь я представляю руководство по настройке, которое не требует предварительного знания чего-либо, связанного с ОС.

Сначала давайте рассмотрим плюсы и минусы размещения вашего приложения на VPS.

Плюсы:

  • это дешево
  • Вы можете разместить несколько проектов на одном сервере (идеально подходит для сторонних проектов)
  • у вас есть большой контроль над администрированием сервера

Минусы:

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

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

Для этого руководства вам понадобятся ваше приложение, VPS и доменное имя.

Установка необходимого программного обеспечения

Предполагая, что вы только начали со свежим VPS, у вас, скорее всего, будет чистый Ubuntu. Нам потребуется установить Node.js (для запуска вашего приложения), nginx (для настройки обратного прокси-сервера; подробнее об этом позже) и certbot (для выдачи SSL-сертификата). Вам также, вероятно, понадобится БД (например, MySQL или PostgreSQL), но это зависит от вас.

Самый простой способ установить эти пакеты — это использовать

apt

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

Как только вы закончите, вам также нужно будет установить

pm2

, Менеджер процессов Node.js:

И мы сделали! Теперь давайте настроим все это.

Загрузка и запуск вашего приложения

Что ж, если вы уже разместили свой код на GitHub, это должно быть легко.

git clone

должен сделать свою работу.

Я должен упомянуть одну вещь: создайте ключ SSH и свяжите его с вашим GitHub, Таким образом, ваш сервер сможет получить ваш личный репозиторий без ввода пароля. Это также намного быстрее, чем вводить пароль вручную каждый раз, когда вы загружаете новейший код на свой сервер.

Давайте протестируем приложение, запустив его.

npm install
node src/app.js

пм2

Как я уже упоминал, pm2 — это инструмент управления процессами для ваших приложений Node.js. Он может выполнять множество задач, таких как регистрация выходных данных вашего приложения, запись использования аппаратных ресурсов, перезапуск приложения в случае его сбоя, но сейчас мы заинтересованы в запуске приложения в режиме «демона». Короче говоря, «демон» означает, что ваше приложение не остановится, когда вы нажмете Ctrl + C или закроете окно консоли. Вместо этого он будет работать в фоновом режиме, пока вы явно не скажете ему остановиться.

Чтобы запустить приложение, запустите

pm2 start src/app.js --name nodejs-app

Вот и все! Ваше приложение работает в фоновом режиме, навсегда.

Теперь вы можете управлять своим приложением по его имени:

pm2 stop nodejs-app
pm2 start nodejs-app
pm2 restart nodejs-app

Nginx

Теперь nginx — это много чего, правда. Здесь мы только поцарапаем его поверхность, настроив обратный прокси для нашего приложения.

Так что такое обратный прокси? Вот один из способов выразить это: обратный прокси-сервер — это посредник между клиентом и сервером, который преобразует внешний маршрут во внутренний. Скажем, если nginx ловит запрос

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

может маршрутизировать приложение через порт 3001 и т. д.

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

http://app.example.org

и порт, на котором развернуто наше приложение,

3000

,

Сначала создайте конфигурацию для вашего приложения:

nano /etc/nginx/sites-enabled/app.example.org.conf

Затем вставьте следующее:

server {
    server_name app.example.org;
    listen 80;
    
    location / {
        proxy_pass http://localhost:3000/;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Наконец, проверьте, что наш конфиг в порядке, и перезапустите nginx.

nginx -t
systemctl restart nginx
Теперь, если вы действительно хотите протестировать эту вещь, вам понадобится домен. Субдомен также будет работать нормально, просто замените все

app.example.org

выше с вашим полным доменным именем.

Woohoo! Теперь вы (и все остальные!) Сможете получить доступ к своему приложению, введя его URL в строке браузера.

certbot

Мы почти закончили! Последний шаг — настроить SSL-сертификат для вашего приложения, чтобы вы могли получить к нему доступ через

https

,

Мы сделаем это через

certbot

— инструмент CLI для удивительной службы сертификатов под названием Let's Encrypt.

Начните с простого ввода

Вы увидите список доменов. Скорее всего, у вас будет только один, тот, который мы настроили выше, поэтому будет сложно выбрать неправильный. Следуйте инструкциям, поскольку certbot создаст сертификат и обновит вашу конфигурацию nginx.

Вот и все. Теперь, когда вы вводите свой URL, он будет работать с https. Кроме того, он также перенаправит незащищенные http-вызовы на https (если вы выбрали это во время настройки).

Завершение

Я надеюсь, что вы не потерялись в процессе и успешно запустили свое приложение. Если вы обнаружили, что проводите час или два, не беспокойтесь: в следующий раз это будет намного быстрее. Как только вы овладеете им, вы сможете отправить проекты в Интернет за считанные минуты!



Источник: Как развернуть приложение Node.js на VPS Digital Ocean


Похожие материалы по теме: Как развернуть приложение Node.js на VPS Digital Ocean

Leave a comment