Использование VDS (виртуального выделенного сервера) даёт множество преимуществ для проектов на Node.js:
1. Гибкость – Полный контроль над сервером позволяет устанавливать нужные версии Node.js, базы данных и другие инструменты.
2. Производительность – В отличие от shared-хостинга, ресурсы не делятся с другими пользователями, что снижает задержки.
3. Безопасность – Возможность настраивать брандмауэры, SSH-доступ и другие защитные механизмы.
4. Масштабируемость – Легко расширять ресурсы при увеличении нагрузки.
5. Надёжность – PM2 обеспечивает автоматический перезапуск приложения при сбоях, а Nginx помогает эффективно распределять нагрузку.
Теперь разберём процесс развертывания Node.js-сайта на VDS с использованием PM2 и Nginx.
Если сервер только что куплен, то проведите базовую подготовку сервер к работе: Подготовка сервера Linux к работе
1. Обновите систему
apt update && apt upgrade -y
Сначала установим Node.js и npm (Node Package Manager).
Лучше всего использовать nvm (Node Version Manager), чтобы легко управлять версиями:
curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
source ~/.bashrc
nvm install --lts
Проверьте установку:
node -v
npm -v
Вы увидите версии
1. Создайте каталог для проекта
mkdir -p ~/nodeapp && cd ~/nodeapp
2. Создайте простой сервер на Node.js
Создадим файл server.js и вставим код:
nano server.js
const http = require('http');
const port = 3000;
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, Node.js on VDS!');
});
server.listen(port, () => {
console.log(`Server running at http://localhost:${port}/`);
});
Сохраните с помощью Ctrl-X, Y, Enter
3. Установите зависимости (если используются)
npm init -y
npm install express
4. Теперь можно запустить сервер:
node server.js
Сайт будет доступен по адресу http://your-vds-ip:3000/.
your-vds-ip - ip адрес вашего сервера
PM2 помогает управлять Node.js-приложениями, автоматически их перезапускать и запускать при старте сервера.
1. Установите PM2
npm install -g pm2
2. Запустите приложения под управлением PM2
pm2 start server.js --name "nodeapp"
3. Сохраните процесс и запуск при старте системы
pm2 save
pm2 startup
Выполните команду, которую предложит PM2 (например, sudo systemctl enable pm2-root).
4. Проверьте статус:
pm2 list
Для остановки можно использовать:
pm2 stop nodeapp
Подробнее про его настройку можете прочитать в статье: Инструкция по установке и настройке Nginx
1. Создайте конфигурации для Node.js-сайта
Создайте новый конфигурационный файл:
nano /etc/nginx/sites-available/nodeapp
Добавьте следующий код:
server {
listen 80;
server_name 147.45.125.183; # укажите ваш ip или домен
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;
}
}
Сохраните файл и создайте символьную ссылку:
ln -s /etc/nginx/sites-available/nodeapp /etc/nginx/sites-enabled/
Проверьте конфигурацию и перезапустите Nginx:
nginx -t
systemctl restart nginx
Теперь сайт доступен по http://yourdomain.com/ или http://your-vds-ip/. Без указания порта.
Этот шаг нужен, если у вас есть домен и нужно соединение https
1. Для защиты сайта установите бесплатный SSL-сертификат:
apt install certbot python3-certbot-nginx -y
certbot --nginx -d yourdomain.com -d www.yourdomain.com
2. Настройте автоматическое обновление сертификатов:
certbot renew --dry-run
После этого ваш сайт будет работать по HTTPS.
Теперь ваш Node.js-сайт запущен на VDS с PM2 и Nginx:
Это надёжное, масштабируемое и безопасное решение для продакшн-развёртывания Node.js-приложений. ?
Ознакомиться с тарифами на надёжные серверы для хостинга ваших приложений вы можете по ссылке: Тарифы на VDS