
Node.js – это среда для выполнения JavaScript-кода на сервере. Ее использование открывает возможности для разработки масштабируемых приложений, таких как веб-сервисы, REST API и реальное время общения. Запуск Node.js на сервере можно выполнить несколькими способами, в зависимости от операционной системы и настроек сервера. В этом руководстве будут рассмотрены основные шаги, необходимые для установки и настройки Node.js на сервере с ОС Ubuntu, а также полезные практики для обеспечения стабильной работы.
Перед установкой убедитесь, что на вашем сервере есть доступ к интернету и права администратора. На Ubuntu 20.04 или более поздних версиях поддержка Node.js включена в официальные репозитории, что упрощает процесс установки. Для старых версий или нестандартных конфигураций сервера можно использовать альтернативные методы, такие как установка через NVM (Node Version Manager), чтобы легко управлять версиями Node.js.
Шаг 1: Для установки Node.js через репозиторий выполните следующие команды:
sudo apt update sudo apt install nodejs sudo apt install npm
Эти команды обновляют список пакетов и устанавливают последнюю доступную версию Node.js и менеджер пакетов npm. Для проверки успешной установки используйте команды:
node -v npm -v
Шаг 2: Важно контролировать версию Node.js. Для этого рекомендуется использовать NVM, который позволяет легко переключаться между различными версиями. Установить его можно с помощью следующих команд:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash source ~/.bashrc nvm install node
С этим инструментом вы сможете не только установить актуальную версию Node.js, но и в дальнейшем легко обновлять или менять версии по мере необходимости.
Запуск Node.js на сервере требует правильно настроенного окружения. Для обеспечения высокой доступности и надежности рекомендуется использовать такие инструменты, как PM2, который позволяет запустить приложение в фоновом режиме и автоматически перезапускать его в случае сбоя.
Выбор сервера для установки Node.js
Node.js можно установить на различные серверные операционные системы, включая Linux, Windows и macOS. Однако выбор конкретной платформы зависит от ваших требований, навыков администрирования и специфики проекта. Рассмотрим основные варианты.
1. Linux
Linux является наиболее популярной платформой для работы с Node.js благодаря стабильности, безопасности и широкому сообществу разработчиков. Рекомендуются следующие дистрибутивы:
- Ubuntu – одна из самых популярных операционных систем для серверов. Простота установки и богатая документация делают его отличным выбором для большинства пользователей.
- Debian – стабильный дистрибутив, известный своей долгосрочной поддержкой и минималистичной конфигурацией.
- CentOS – дистрибутив на базе Red Hat, подходящий для корпоративных решений.
Для установки Node.js на этих системах можно использовать официальный пакетный менеджер. Например, на Ubuntu это команда:
sudo apt-get install nodejs
2. Windows

Node.js поддерживает Windows, но этот вариант подходит для разработчиков, которым нужно локальное тестирование на клиентских машинах или специфические Windows-инструменты. Для сервера Windows можно использовать серверные версии, такие как Windows Server 2016 и новее. Установка через официальный установщик Node.js будет самой простой.
3. macOS

macOS чаще используется для разработки, но его серверные версии могут быть полезны для небольших проектов. На серверных машинах macOS рекомендуется использовать последние стабильные версии операционной системы, которые поддерживают все актуальные функции Node.js. Для установки можно использовать Homebrew:
brew install node
4. Docker
Для пользователей, которым важно управление контейнерами и изоляция приложений, Docker является отличным выбором. В нем можно запустить Node.js в контейнере, минимизируя конфликты с другими сервисами. Это решение подходит для создания гибких и масштабируемых окружений.
5. VPS и облачные сервисы

Если вы хотите разместить Node.js-приложение на удаленном сервере, наилучшими вариантами являются VPS и облачные платформы, такие как:
- AWS EC2 – предоставляет возможность настроить сервер по вашему выбору с удобной платой за использование ресурсов.
- DigitalOcean – проще в настройке и оптимизирован для разработчиков, нуждающихся в доступных VPS.
- Heroku – удобная платформа для деплоя Node.js приложений с минимальными настройками.
Для облачных решений можно использовать официальные образы Node.js, предоставляемые в платформах, или настроить сервер с нуля через SSH.
6. Производительность и масштабируемость

При выборе сервера для Node.js важно учитывать производительность. Например, для приложения с высокими нагрузками подойдет сервер с многозадачной поддержкой, например, на базе CentOS или Ubuntu. Также стоит учитывать количество оперативной памяти, частоту процессора и возможности масштабирования, такие как использование кластеров или балансировщиков нагрузки.
При использовании Docker или облачных платформ такие параметры легко настроить и изменить в зависимости от роста нагрузки на приложение.
Установка Node.js на Ubuntu через терминал
Для установки Node.js на сервере с Ubuntu выполните следующие шаги:
1. Обновите список пакетов и установите необходимые зависимости:
sudo apt update
sudo apt install -y curl gnupg2 lsb-release ca-certificates
2. Добавьте официальный репозиторий NodeSource, который содержит актуальные версии Node.js. Для этого используйте следующую команду:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
Этот скрипт настроит ваш сервер для использования Node.js версии 18.x (можно заменить на нужную версию).
3. Установите Node.js и npm (менеджер пакетов для Node.js):
sudo apt install -y nodejs
4. Проверьте версию установленного Node.js:
node -v
5. Проверьте версию npm:
npm -v
Установка завершена, Node.js готов к использованию. Если требуется другая версия, можно воспользоваться альтернативными методами установки, например, через nvm (Node Version Manager).
Проверка правильности установки Node.js
После установки Node.js на сервере важно удостовериться, что установка прошла успешно и система настроена корректно. Для этого используйте следующие шаги:
- Откройте терминал или командную строку.
- Введите команду
node -vи нажмите Enter. Эта команда выведет установленную версию Node.js.
Если версия Node.js отображается корректно (например, v16.13.0), это подтверждает, что Node.js установлен и работает правильно. Если возникает ошибка, проверьте, что Node.js правильно добавлен в переменные окружения PATH.
Для проверки версии npm, который устанавливается вместе с Node.js, используйте команду:
- Введите команду
npm -vи нажмите Enter. Эта команда отобразит текущую версию менеджера пакетов npm.
Кроме того, можно выполнить тестовый запуск приложения Node.js:
- Создайте новый файл с расширением
.js, например,test.js. - Добавьте в файл следующий код:
console.log('Node.js работает корректно');
- В терминале выполните команду
node test.js.
Если на экране появляется сообщение Node.js работает корректно, значит, ваша установка полностью функционирует.
Настройка окружения для работы с Node.js
Для начала работы с Node.js на сервере необходимо установить его и настроить соответствующие инструменты. Рассмотрим основные этапы настройки окружения.
1. Установка Node.js
Для установки Node.js используйте официальный менеджер пакетов для вашей операционной системы. Для большинства Linux-систем это будет apt (для Debian/Ubuntu) или yum (для CentOS/RHEL).
Для Ubuntu/Debian выполните следующие команды:
sudo apt update
sudo apt install nodejs
sudo apt install npm
Для CentOS/RHEL:
curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install -y nodejs
2. Проверка версии
После установки проверьте корректность установки, выполнив команду:
node -v
Это выведет текущую версию Node.js, например, v16.14.0, что подтвердит успешную установку.
3. Установка зависимостей
В зависимости от проекта могут понадобиться дополнительные пакеты и зависимости. Чтобы установить их, создайте файл package.json с помощью команды:
npm init
Для установки нужных библиотек используйте:
npm install <пакет>
4. Использование nvm (Node Version Manager)
Для удобной работы с несколькими версиями Node.js рекомендуется установить nvm. Он позволяет переключаться между версиями Node.js без необходимости вручную изменять конфигурации системы.
Установить nvm можно следующей командой:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
После установки перезапустите терминал и используйте команду для установки Node.js:
nvm install 16
Переключаться между версиями можно с помощью команды:
nvm use 16
5. Настройка переменных окружения
Если ваш проект зависит от переменных окружения, создайте файл .env в корне проекта и добавьте нужные параметры:
DB_HOST=localhost
DB_PORT=5432
Для чтения этих переменных используйте пакет dotenv:
npm install dotenv
Затем в коде подключите его:
require('dotenv').config();
6. Запуск Node.js приложения
Для запуска приложения используйте команду:
node app.js
Если приложение предполагает длительную работу на сервере, рекомендуется использовать менеджеры процессов, такие как pm2, для управления жизненным циклом приложения.
7. Установка pm2
Для установки pm2 используйте команду:
npm install -g pm2
Запуск приложения с помощью pm2:
pm2 start app.js
Для автоматического старта приложения при перезагрузке сервера:
pm2 startup
pm2 save
Запуск приложения на Node.js в фоновом режиме

PM2 – это процесс-менеджер для Node.js, который позволяет запускать приложение в фоновом режиме и управлять его жизненным циклом. Чтобы установить PM2, выполните команду:
npm install pm2 -g
Для запуска приложения на Node.js в фоновом режиме с PM2 используйте команду:
pm2 start app.js
PM2 обеспечит перезапуск приложения при сбоях и сохранение его состояния между перезагрузками сервера. Чтобы сохранить текущие процессы и настроить автозапуск при старте системы, используйте:
pm2 startup
Для сохранения конфигурации и перезапуска PM2 после перезагрузки выполните:
pm2 save
screen – это инструмент, который позволяет запускать процессы в отдельной виртуальной терминальной сессии. Чтобы использовать screen, сначала установите его:
sudo apt-get install screen
После этого создайте новую сессию и запустите приложение:
screen -S myapp
Затем запустите Node.js приложение:
node app.js
Для выхода из сессии, не завершив её, нажмите Ctrl + A, затем D. Чтобы вернуться в сессию, используйте команду:
screen -r myapp
nohup – это утилита для запуска процессов в фоновом режиме, которая продолжает их выполнение даже после выхода из системы. Для запуска приложения с использованием nohup, выполните следующую команду:
nohup node app.js &
tail -f nohup.out
Каждый из этих методов имеет свои особенности. PM2 предоставляет наибольшее количество функций для управления процессами, в то время как screen и nohup подойдут для простых случаев, когда требуется минимальный контроль за приложением.
Конфигурация сервера для автоматического старта Node.js при перезагрузке
Для того чтобы Node.js автоматически запускался после перезагрузки сервера, можно использовать утилиту PM2 или настроить systemd-сервис. Оба способа позволяют обеспечить стабильную работу приложения и восстановление его после сбоев.
Метод 1: Использование PM2
PM2 – это популярный процесс-менеджер для Node.js, который поддерживает автозапуск приложений. Для настройки автоматического старта через PM2 выполните следующие шаги:
1. Установите PM2: npm install pm2 -g 2. Запустите приложение с PM2: pm2 start app.js 3. Для настройки автозапуска при перезагрузке выполните команду: pm2 startup 4. Сохраните текущие процессы: pm2 save
Теперь PM2 будет автоматически запускать ваше приложение при перезагрузке сервера. Вы можете проверить статус через команду:
pm2 list
Метод 2: Настройка systemd-сервиса
Для более гибкой настройки автозапуска можно создать systemd-сервис. Это подход особенно полезен, если вы хотите интегрировать приложение с системой управления сервисами Linux.
1. Создайте файл сервиса в каталоге /etc/systemd/system/:
sudo nano /etc/systemd/system/nodeapp.service
2. Вставьте следующий конфиг в файл:
[Unit] Description=Node.js App After=network.target [Service] ExecStart=/usr/bin/node /path/to/your/app.js Restart=always User=your_user Group=your_group Environment=PATH=/usr/bin:/usr/local/bin Environment=NODE_ENV=production WorkingDirectory=/path/to/your/app [Install] WantedBy=multi-user.target
3. Сохраните файл и перезагрузите systemd:
sudo systemctl daemon-reload
4. Включите и запустите сервис:
sudo systemctl enable nodeapp sudo systemctl start nodeapp
Теперь ваше приложение будет запускаться автоматически при старте сервера и перезапускаться в случае сбоя.
Преимущества каждого метода:
| Метод | Преимущества | Недостатки |
|---|---|---|
| PM2 | Простота в использовании, управление процессами через команду, поддержка кластера. | Зависимость от стороннего инструмента. |
| systemd | Интеграция с системой, гибкость настройки, независимость от сторонних утилит. | Более сложная настройка, требует знания systemd. |
Оба метода эффективны, но выбор зависит от ваших предпочтений и требований к системе.
Мониторинг работы Node.js на сервере
Для эффективного контроля за работой приложения на Node.js необходимо настроить мониторинг, чтобы своевременно выявлять проблемы и предотвращать их. Существуют несколько подходов для мониторинга различных аспектов работы сервера и приложения.
Одним из таких инструментов является PM2 – менеджер процессов, который позволяет не только управлять процессами Node.js, но и собирать статистику, включая использование памяти, процессора и количество активных запросов. Для включения мониторинга необходимо установить PM2 с помощью команды npm install pm2 -g. Для мониторинга в реальном времени можно использовать команду pm2 monit, которая отображает статистику по каждому процессу, включая время работы, загрузку процессора и использования памяти.
Для более детализированного анализа работы сервера можно подключить Prometheus и Grafana. Prometheus собирает метрики с серверов и приложений, а Grafana визуализирует эти данные в виде графиков. В Node.js можно использовать библиотеку prom-client для интеграции с Prometheus и сбора метрик о запросах, времени отклика и состоянии приложения. Такой мониторинг помогает выявить узкие места и следить за состоянием системы на всех уровнях.
Еще один полезный инструмент – New Relic. Он позволяет отслеживать производительность приложений, баз данных и серверов, а также генерировать отчеты с подробными данными о времени отклика, ошибках и производительности. Для интеграции с Node.js потребуется установить агент New Relic с помощью команды npm install newrelic и настроить файл конфигурации.
Важно также настроить уведомления. Для этого можно использовать сервисы вроде Slack или PagerDuty, которые отправляют уведомления о критичных ошибках или изменениях в состоянии приложения. Такие уведомления помогут оперативно реагировать на инциденты и уменьшить время простоя сервера.
Для анализа и диагностики производительности можно использовать clinic.js. Этот набор инструментов помогает анализировать производительность Node.js приложений, выявлять утечки памяти, проблемы с асинхронными операциями и другие узкие места.
Мониторинг работы Node.js на сервере требует комплексного подхода, включающего как инструменты для сбора метрик и логов, так и системы уведомлений и анализа производительности. Регулярная настройка и использование этих инструментов позволяет поддерживать стабильную работу приложения и оперативно устранять возникающие проблемы.
Вопрос-ответ:
Какие требования к серверу для запуска Node.js?
Для запуска Node.js на сервере особых требований не нужно, кроме того, что сервер должен поддерживать ОС, совместимую с Node.js (Linux, Windows, macOS). Важнее всего наличие достаточного объема оперативной памяти (от 1 ГБ) и процессора. Так как Node.js — это асинхронная система, она может работать эффективно на серверах с меньшими ресурсами по сравнению с другими средами. Однако, для работы с большими приложениями потребуется больше памяти и процессорной мощности.
Нужно ли устанавливать какие-то дополнительные инструменты для продакшн-режима?
Для работы приложения в продакшн-режиме стоит настроить несколько вещей. Во-первых, для повышения безопасности и производительности часто используется обратный прокси-сервер, например, Nginx, который будет направлять запросы к вашему приложению Node.js. Во-вторых, желательно использовать процесс-менеджер, такой как `pm2`, который поможет поддерживать приложение живым, а также легко его перезапускать и следить за его состоянием. Кроме того, следует позаботиться о настройках логирования и мониторинга, чтобы отслеживать производительность приложения.
Какие шаги нужно выполнить, чтобы установить Node.js на сервер с Linux?
Сначала необходимо подключиться к серверу через SSH. После этого обновите список пакетов командой sudo apt update (для Debian/Ubuntu) или sudo yum update (для CentOS/Fedora). Затем установите Node.js: на Debian/Ubuntu это можно сделать командой sudo apt install nodejs npm, на CentOS — через sudo yum install nodejs npm. После установки проверьте корректность командой node -v, которая покажет установленную версию Node.js. Если нужно установить более новую версию, лучше использовать менеджер версий nvm, позволяющий переключаться между несколькими версиями Node.js на одном сервере.
Как запустить Node.js-приложение на сервере, чтобы оно работало постоянно?
После загрузки файлов приложения на сервер можно запустить его командой node app.js. Однако при этом процесс завершится, если закрыть терминал. Чтобы приложение работало постоянно, используют менеджеры процессов, такие как pm2 или forever. Например, после установки pm2 через npm install -g pm2, можно запустить приложение командой pm2 start app.js. Менеджер процессов будет автоматически перезапускать приложение при сбоях и позволяет настроить автозапуск при перезагрузке сервера.
