August 26, 2026 · by Alex M.
Node.js — одна из самых востребованных платформ для разработки серверных приложений: REST API, сервисы реального времени, инструменты командной строки и микросервисы. Если у вас есть VPS SSD и вы хотите запустить Node.js в продакшне, это руководство проведёт вас через все необходимые шаги.
Виртуальный хостинг отлично подходит для сайтов на WordPress или классических PHP-приложений. Но Node.js нужен собственный постоянно работающий процесс, открытые порты и полный контроль над средой исполнения — то, чего shared hosting cPanel не предоставляет.
С VPS NVMe вы получаете:
- Полный root-доступ — устанавливайте любую версию Node.js
- Постоянные процессы — приложение работает непрерывно через PM2 или systemd
- Предсказуемую производительность — без «шумных соседей»
- Полный контроль над портами, файерволом и конфигурацией
Для выполнения этого руководства вам понадобится:
- VPS с Ubuntu 22.04 или Debian 12 (рекомендуется)
- SSH-доступ с правами root или sudo
- Базовые знания командной строки Linux
Если у вас ещё нет сервера, закажите VPS SSD или VPS 1C — доступное решение для старта любого проекта.
NVM позволяет устанавливать несколько версий Node.js и переключаться между ними без конфликтов — идеально для продакшн-сред.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Перезагрузите конфигурацию оболочки:
export NVM_DIR="$HOME/.nvm"
source ~/.bashrc
Проверьте установку:
nvm --version
# вывод: 0.39.7
nvm install --lts
nvm use --lts
nvm alias default 'lts/*'
Проверьте установленные версии:
node --version
# v20.x.x
npm --version
# 10.x.x
Если вам нужна системная установка (доступная для всех пользователей), используйте официальный репозиторий NodeSource:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Этот метод удобен при использовании услуг управления сервером для стандартизированного развёртывания.
Для проверки среды создадим простой HTTP-сервер:
mkdir ~/myapp && cd ~/myapp
nano app.js
Содержимое файла app.js:
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello from CliqHost VPS!\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
Запустите приложение:
node app.js
Откройте браузер и перейдите по адресу http://IP_ВАШЕГО_VPS:3000 — вы должны увидеть приветственное сообщение.
В продакшн-среде приложение должно работать непрерывно и автоматически перезапускаться после сбоя или перезагрузки сервера. PM2 — стандартное решение для этого.
npm install -g pm2
cd ~/myapp
pm2 start app.js --name "myapp"
pm2 startup
# Скопируйте и выполните отображённую команду (с sudo)
pm2 save
pm2 status # статус процессов
pm2 logs myapp # логи приложения
pm2 restart myapp # перезапуск
pm2 stop myapp # остановка
pm2 delete myapp # удаление из списка PM2
Приложение Node.js работает на порту 3000, тогда как пользователи обращаются к сайту через порты 80/443. Настроим Nginx для правильной маршрутизации трафика.
sudo apt update
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/myapp
server {
listen 80;
server_name вашдомен.com www.вашдомен.com;
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;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Активируйте конфигурацию:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Ни один современный сайт не должен работать без HTTPS. Установите Certbot для бесплатного сертификата Let's Encrypt:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d вашдомен.com -d www.вашдомен.com
Если вам нужен коммерческий SSL-сертификат с расширенной проверкой, CliqHost предлагает SSL-сертификаты для любых типов проектов.
Убедитесь, что необходимые порты открыты, а порт 3000 (внутренний) не доступен напрямую из интернета:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw deny 3000
sudo ufw enable
sudo ufw status
Никогда не храните учётные данные непосредственно в коде. Используйте переменные окружения:
npm install dotenv
Создайте файл .env:
PORT=3000
DB_HOST=localhost
DB_USER=admin
DB_PASS=секретный_пароль
NODE_ENV=production
В начале app.js добавьте:
require('dotenv').config();
const port = process.env.PORT || 3000;
Важно: Добавьте .env в .gitignore, чтобы не раскрывать конфиденциальные данные.
PM2 хранит логи приложения в ~/.pm2/logs/. Просматривайте логи в реальном времени:
pm2 logs myapp --lines 100
Для углублённого мониторинга ресурсов сервера изучите статьи в нашем блоге CliqHost — там вы найдёте руководства по отслеживанию CPU, RAM и дискового пространства на Linux.
npm audit fix)pm2 start app.js -i max --name "myapp-cluster"
Установка и настройка Node.js на VPS Linux — задача вполне решаемая при правильном подходе. NVM обеспечивает гибкое управление версиями, PM2 гарантирует непрерывную работу приложения, а связка Nginx + SSL завершает надёжную и защищённую продакшн-конфигурацию.
Для максимальной производительности рекомендуем VPS NVMe с ультрабыстрым хранилищем — особенно когда ваше Node.js-приложение должно обрабатывать десятки или сотни одновременных запросов. Если вы предпочитаете делегировать администрирование сервера профессионалам, воспользуйтесь нашими услугами управления серверами. Свяжитесь с командой CliqHost — мы готовы помочь.
Реальные отзывы клиентов, которые доверяют CLIQHOST за производительность, надёжность и профессиональную техническую поддержку.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."