Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Всем привет✋, решил написать статью, потому что сам долго искал информацию, поэтому надеюсь она вам поможет в решении ваших проблем😉.

1.Заходим на сервер через ssh

Я буду показывать на примере VPS сервера на Beget, вы можете использовать любой другой.

Создаем сервер и копируем реквезиты доступа, нам нужна колонка с @root+ip.

Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Далее открываем Windows PowerShell и подключаемся по ssh

$ ssh root@+(ваш ip сервера) $ ssh root@212.67.8.65 - для меня

Вводим пароль(тот, который указывали при создании сервера) и мы на нашем сервере!

2.Скачиваем необходимые файлы

Теперь нам нужно скачать сам Node.js и для этого выполняем команду:

$ sudo apt install node.js
Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Если у вас появляется ошибка, то вам подойдет алтернативный вариант:

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

И снова:

$ sudo apt install nodejs

Проверим:

$ node -v
Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Установим пакетный менеджер npm:

$ sudo apt install npm

Проверим:

$ npm -v
Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Установим nginx, он нам понадобиться для того, чтобы связать наш localhost c внешним доменом

$ sudo apt install nginx

На этом с установкой всё.

3.Привязываем домен к VPS серверу

Я купил домен на сайте reg.ru, вы можете сделать это на любом другом, процесс будет одинаковым.

Переходим в настройки, в раздел домены и выбираем свой домен. Далее переходим в задел DNS-серверы и управление зоной

Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

В ресурсных записях добавляем новую A запись. Здесь в Subdomain указываем @(это означает, что сам домен будет назначан к ip-адрессу вашего VPS сервера).

В строку IP Address вставляем ip вашего сервера

Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Подождем пару минут и если все хорошо, то при переходе на ваш домен должна показаться такая страница(если она не выходит, то попробуйте с vpn зайти).

Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

4.Настраиваем среду для проекта

Далее снова открываем консоль и создаем папку проекта. Я создам папку test.

$ mkdir test

Переходим в нее

$ cd test

В эту папку мы должны загрузить файлы нашего проекта, я буду загружать c github

$ git clone https://github.com/IgnatevArseniy/Test

Если github не установлен, то:

$ sudo apt install git

Переходим в папку Test

$ cd Test

И провераяем наличие файлов

$ ls
Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Отлично, теперь нужно установить все зависимости, они прописанны в файле package.json(eсли у вас такого нет, то просто установите всё отдельно).

$ npm i
Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Теперь если запустить index.js, то все запуститься

$ node index
Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Перейдем в браузере на адресс ip-сервера:ПОРТ, у меня 212.67.8.65:4000 и все работает!

Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

5.Привязываем домен к нашему localhost

Открываем файл nginx конфиг в редакторе nano

$ sudo nano /etc/nginx/sites-available/default

Теперь здесь добавляем в строку с server_name ваш домен. Удаляем всё из location и вставляем:

proxy_pass http://localhost:ваш_порт; 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;
Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Нажимаем ctrl+x и сохраняем изменения. Проверяем файл:

$ nginx -t
Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Если все ок, то перезагружаем nginx:

$ sudo service nginx restart

После перезагрузки заходим на наш домен в браузере:

Если появилось такое окно, то все хорошо. Запускаем index.js и обновляем страницу:
Если появилось такое окно, то все хорошо. Запускаем index.js и обновляем страницу:
$ node index
Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?
Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Видим, что домен успешно подвязался к нашему приложению!

6.Скачиваем pm2, для оптимального запуска приложений 24/7

Чтобы наше приложение работало 24/7 нам нужен скачать такой сервис как pm2:

$ sudo npm install pm2 -g

Запускаем index.js:

$ pm2 start index.js
Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Теперь приложение успешно работает, можем проверить:

Как запустить собственное приложение Node.js на VPS сервере(Ubuntu)?

Пришло время подводить итоги. Сегодня мы успешно задеплоили проект node.js на виртуальный VPS сервер и привязали к нему домен. Надеюсь эта статья была вам полезна. Если вам интересна тема web3 и программирования в целом, то можете подписаться на мой тг_канал в котором я буду публиковать часть кода своих проектов и делиться своими мыслями и целями. Надеюсь еще увидимся)))

33
Начать дискуссию