
Node.js становится всё более популярным выбором для создания серверных приложений. Он обеспечивает высокую производительность и лёгкость в настройке, но установка на хостинг требует некоторых особенностей, которые важно учитывать. В этой статье мы рассмотрим, как правильно установить Node.js на хостинг и какие шаги нужно предпринять, чтобы обеспечить стабильную работу вашего приложения.
Перед началом установки важно выбрать правильный тип хостинга. Многие стандартные хостинг-платформы предоставляют поддержку Node.js, но не всегда могут предложить нужные возможности для полноценного использования. В случае с виртуальными частными серверами (VPS) или выделенными серверами, процесс установки гораздо гибче, и у вас есть полный контроль над системой. В отличие от обычного shared-хостинга, такие решения обеспечат нужную производительность и настройки для работы с Node.js.
Основные шаги включают подключение к серверу через SSH, загрузку нужной версии Node.js, настройку зависимостей и установку приложений. Важно также правильно настроить сервер для работы с Node.js и обеспечить автоматический запуск вашего приложения при перезагрузке сервера. В этой статье мы поэтапно разберём все этапы, чтобы процесс установки прошёл быстро и без проблем.
Выбор подходящего хостинга для установки Node.js

При выборе хостинга следует обратить внимание на несколько ключевых моментов. Во-первых, наличие SSH-доступа к серверу – без него установка Node.js и настройка окружения будет невозможна. Во-вторых, наличие поддержки необходимых версий Node.js или возможность установить последнюю версию через пакетные менеджеры, такие как NVM (Node Version Manager). Также важно учитывать, что хостинг должен поддерживать установку дополнительных пакетов и зависимостей, таких как npm, для полноценной работы вашего проекта.
Если вы не хотите заниматься настройкой серверной инфраструктуры самостоятельно, можно рассмотреть использование облачных платформ, таких как DigitalOcean, AWS, или Google Cloud. Эти провайдеры предлагают готовые образы с установленным Node.js, что позволяет сократить время на настройку и сразу начать разработку. Однако для опытных пользователей, которые предпочитают настроить сервер под себя, VPS-платформы с возможностью установки собственных операционных систем будут лучшим выбором.
Особое внимание стоит уделить производительности хостинга. Для высоконагруженных приложений важно, чтобы сервер обладал достаточными вычислительными ресурсами, такими как процессорная мощность и оперативная память. В зависимости от масштабов вашего проекта, подберите хостинг с возможностью масштабирования, чтобы в будущем не столкнуться с проблемами производительности.
Проверка версии Node.js на сервере хостинга
Перед тем как приступить к установке или обновлению Node.js на сервере, важно убедиться, что версия Node.js уже установлена или нуждается в обновлении. Проверка версии помогает избежать ошибок совместимости и лишней работы по установке, если нужная версия уже присутствует на сервере.
Для этого подключитесь к серверу через SSH и выполните команду:
node -v
Эта команда выведет текущую установленную версию Node.js, например:
v14.17.0
which node
Если команда возвращает пустой результат, Node.js действительно отсутствует на сервере. В случае успешного выполнения команда покажет путь к исполнимому файлу Node.js.
Если на сервере установлена устаревшая версия Node.js, рекомендуется обновить её до последней стабильной. Для этого можно использовать пакетный менеджер nvm (Node Version Manager), который позволяет легко управлять версиями Node.js. Команда для установки и использования nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
После установки nvm можно проверить доступные версии Node.js и установить нужную:
nvm ls-remote
- Выберите версию из списка, например: v16.13.1.
- Установите выбранную версию:
nvm install v16.13.1
Теперь можно проверить установленную версию командой:
node -v
Установка Node.js через SSH на хостинг
Первым шагом подключитесь к серверу через SSH с помощью следующей команды:
ssh username@your-server-ip
После успешного подключения, можно приступать к установке Node.js. Рассмотрим два основных способа установки:
Установка с помощью пакетного менеджера
Если вы используете сервер на базе Ubuntu или Debian, Node.js можно установить через apt:
- Обновите список пакетов:
- Установите Node.js:
- Установите npm (менеджер пакетов для Node.js), если он не установлен:
sudo apt update
sudo apt install nodejs
sudo apt install npm
Для CentOS или Fedora используйте yum:
- Обновите репозитории:
- Установите Node.js:
sudo yum update
sudo yum install nodejs
После этого можно проверить установленную версию с помощью команды:
node -v
Установка с помощью Node Version Manager (nvm)
Для большего контроля над версиями Node.js, рекомендуется использовать nvm (Node Version Manager). Он позволяет легко переключаться между различными версиями Node.js.
Чтобы установить nvm, выполните следующие шаги:
- Загрузите и установите nvm:
- Перезагрузите терминал или выполните команду:
- Установите последнюю версию Node.js с помощью nvm:
- Проверьте установленную версию:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install node
node -v
После установки nvm вы сможете легко устанавливать любую версию Node.js и переключаться между ними, используя команды:
- Для установки конкретной версии:
- Для использования установленной версии:
nvm install 14.17.0
nvm use 14.17.0
Использование nvm позволяет избежать проблем с совместимостью версий, так как вы можете адаптировать сервер под конкретные требования ваших приложений.
Настройка окружения для работы с Node.js на хостинге

После установки Node.js на сервер необходимо настроить окружение для корректной работы приложений. Важно учесть несколько аспектов, таких как установка зависимостей, настройка переменных окружения и управление процессами.
1. Установка зависимостей проекта
Каждое Node.js приложение может иметь свои зависимости, которые нужно установить через менеджер пакетов npm. Перейдите в директорию с проектом и выполните команду:
npm install
Эта команда установит все пакеты, указанные в package.json. Если проект использует yarn вместо npm, используйте команду:
yarn install
2. Настройка переменных окружения
Для управления настройками приложений в разных средах (разработка, тестирование, продакшн) часто используют переменные окружения. Вы можете создать файл .env в корне проекта и записывать туда конфиденциальную информацию, такую как ключи API и настройки базы данных:
DATABASE_URL=mongodb://localhost:27017/mydb
PORT=3000
SECRET_KEY=mysecretkey
Для загрузки переменных окружения в Node.js используйте библиотеку dotenv. Установите её через npm:
npm install dotenv
Затем добавьте следующую строку в начало вашего приложения:
require('dotenv').config();
Теперь вы можете использовать переменные окружения в коде приложения:
const port = process.env.PORT || 3000;
3. Настройка логирования
Для отслеживания ошибок и активности приложения рекомендуется настроить систему логирования. Используйте популярные библиотеки, такие как winston или morgan, для записи логов в файлы или отправки их на удалённые серверы для анализа.
Для установки winston выполните команду:
npm install winston
Пример базовой настройки winston:
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'app.log' })
]
});
logger.info('Server started successfully');
4. Настройка автоматического перезапуска
Для продакшн-среды важно настроить автоматический перезапуск приложения при сбоях или перезагрузке сервера. Используйте PM2, процесс-менеджер для Node.js, который управляет процессами приложения, поддерживает их перезапуск и масштабирование.
Установите PM2 с помощью npm:
npm install pm2 -g
Для запуска приложения через PM2 используйте команду:
pm2 start app.js
PM2 также позволяет настроить автоматический перезапуск приложения при перезагрузке сервера:
pm2 startup
Затем сохраните процесс, чтобы он автоматически запускался при перезагрузке:
pm2 save
5. Проверка окружения

Для проверки правильности настройки окружения можно использовать команду pm2 list, которая покажет список всех работающих процессов, их состояние и статистику:
pm2 list
Также важно регулярно проверять логи ошибок с помощью команды:
pm2 logs
6. Настройка веб-сервера (опционально)
Для обработки HTTP-запросов и проксирования трафика на ваше Node.js приложение можно использовать веб-сервер, такой как NGINX. Он позволит улучшить производительность и безопасность. Пример настройки NGINX для проксирования запросов на порт, на котором работает ваше приложение:
server {
listen 80;
server_name yourdomain.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;
}
}
После внесения изменений в конфигурацию NGINX перезапустите сервер:
sudo systemctl restart nginx
Итоги настройки окружения
После выполнения всех шагов, ваше приложение на Node.js будет готово к запуску и эксплуатации в продакшн-среде. Система будет настроена для обработки запросов, логирования ошибок, автоматического перезапуска при сбоях и обеспечения безопасности через NGINX.
Настройка автоматического запуска приложений Node.js на сервере

Для обеспечения бесперебойной работы Node.js приложения на сервере, важно настроить автоматический запуск приложения при старте системы или в случае его аварийного завершения. Наиболее удобный и распространённый способ решения этой задачи – использование PM2 или системных сервисов, таких как systemd.
Использование PM2 для автоматического запуска
PM2 – это процесс-менеджер для Node.js, который позволяет не только управлять процессами, но и автоматически перезапускать приложение при сбоях или перезагрузке сервера. Для настройки автоматического запуска с помощью PM2 выполните следующие шаги:
- Установите PM2 глобально, если он ещё не установлен:
- Запустите ваше Node.js приложение через PM2:
- Настройте автоматический перезапуск приложения при старте системы:
- После выполнения команды, PM2 выведет инструкцию для настройки автозапуска. Например, для систем с systemd, выполните команду:
- Сохраните текущие процессы, чтобы они автоматически запускались при следующей перезагрузке:
npm install pm2 -g
pm2 start app.js
pm2 startup
sudo env PATH=$PATH:/usr/local/bin pm2 startup systemd -u your-username --hp /home/your-username
pm2 save
Теперь ваше приложение будет автоматически запускаться при старте системы и перезапускаться в случае ошибок.
Использование systemd для автозапуска
Если вы хотите использовать системные сервисы, например systemd, настройка будет немного сложнее, но также даёт больше контроля. Создайте unit-файл для вашего приложения, который будет управлять его запуском и перезапуском.
Для создания сервиса выполните следующие шаги:
- Создайте файл сервисного юнита в директории /etc/systemd/system/:
- Добавьте в файл следующий код:
sudo nano /etc/systemd/system/myapp.service
[Unit]
Description=Node.js Example App
After=network.target
[Service]
ExecStart=/usr/bin/node /home/your-username/myapp/app.js
WorkingDirectory=/home/your-username/myapp
Restart=always
User=your-username
Group=your-username
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
ExecStartPre=/bin/mkdir -p /home/your-username/myapp
ExecStartPre=/bin/chmod +x /home/your-username/myapp/app.js
[Install]
WantedBy=multi-user.target
В этом примере замените your-username на ваше имя пользователя и укажите правильный путь к вашему приложению.
- После создания файла загрузите и активируйте сервис:
- Запустите ваш сервис:
- Убедитесь, что сервис работает:
- Настройте автозапуск при старте системы:
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl status myapp
sudo systemctl enable myapp
Теперь ваше приложение будет автоматически запускаться при загрузке системы, и systemd будет следить за его состоянием, перезапуская его в случае сбоя.
Преимущества автоматического запуска с помощью PM2 и systemd
Оба способа – и с PM2, и с systemd – обеспечивают надёжность и автоматический перезапуск приложений. PM2 имеет дополнительные возможности для мониторинга процессов и управления несколькими приложениями, что делает его удобным для сложных проектов. В свою очередь, использование systemd более предпочтительно для серверов, где требуется более строгий контроль за системными процессами и их управлением.
Отладка и решение распространённых проблем при установке Node.js
Во время установки Node.js на хостинг могут возникать различные проблемы, которые мешают корректной работе приложений. Рассмотрим распространённые ошибки и способы их решения.
1. Ошибка: «node: command not found»
Эта ошибка появляется, если Node.js не был установлен или не добавлен в системный путь. Чтобы решить проблему:
- Проверьте установку Node.js командой:
- Если команда не вернула путь, установите Node.js снова с помощью apt (Ubuntu/Debian) или yum (CentOS/Fedora), либо воспользуйтесь nvm.
which node
2. Ошибка: «npm: command not found»
Если команда npm не работает, это может означать, что менеджер пакетов npm не был установлен вместе с Node.js. Для установки npm выполните следующую команду:
sudo apt install npm
Или установите npm через nvm, который управляет версиями Node.js и автоматически устанавливает npm:
nvm install node
3. Ошибка: «Permission denied» при установке пакетов через npm
Если при установке npm пакетов возникает ошибка доступа, скорее всего, это связано с правами пользователя. Чтобы исправить это, используйте одну из следующих стратегий:
- Запустите команду с правами суперпользователя:
- Используйте nvm, чтобы установить Node.js и npm в пользовательскую директорию, избегая необходимости использовать sudo.
sudo npm install -g
4. Проблемы с совместимостью версий
При работе с различными версиями Node.js могут возникнуть проблемы с совместимостью зависимостей. Использование nvm для установки и управления версиями Node.js помогает решить эту проблему. Чтобы установить нужную версию, используйте команду:
nvm install
После этого переключитесь на нужную версию:
nvm use
5. Ошибка «EACCES: permission denied, access ‘/usr/local/lib/node_modules'»
Эта ошибка связана с недостаточными правами доступа к директории, в которой npm пытается установить глобальные пакеты. Чтобы избежать этой ошибки, измените владельца директории:
sudo chown -R $USER /usr/local/lib/node_modules
Либо настройте npm для установки пакетов в пользовательскую директорию, чтобы не требовать прав суперпользователя:
npm config set prefix ~/.npm-global
6. Ошибка «Failed to start application» после перезагрузки сервера
Если приложение не запускается после перезагрузки сервера, вероятно, не настроен автозапуск. Для решения проблемы используйте PM2 или systemd, чтобы автоматизировать запуск приложения при старте системы.
Для PM2 используйте команду:
pm2 startup
Затем сохраните процессы:
pm2 save
7. Проблемы с проксированием через NGINX
Если ваше приложение не доступно через проксирование на NGINX, проверьте конфигурацию сервера. Убедитесь, что правильно указан порт и настройки прокси. Пример конфигурации для проксирования запросов:
server {
listen 80;
server_name yourdomain.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;
}
}
Перезапустите NGINX после изменений:
sudo systemctl restart nginx
8. Проблемы с правами доступа к файлам
Если приложение не может получить доступ к нужным файлам, убедитесь, что у него есть необходимые права. Для изменения прав используйте команду:
chmod -R 755 /path/to/your/project
Или для изменения владельца:
chown -R your-user:your-group /path/to/your/project
Заключение
Большинство проблем, возникающих при установке Node.js, имеют простые решения, такие как проверка прав доступа, установка недостающих компонентов или настройка правильной версии. Важно внимательно следить за сообщениями об ошибках и использовать правильные инструменты для отладки и настройки окружения.
Вопрос-ответ:
Как проверить, что Node.js правильно установлен на сервере?
Для проверки установки Node.js выполните команду node -v в терминале. Это выведет текущую версию Node.js, если она установлена корректно. Если версия не отображается, значит, установка не удалась или Node.js не добавлен в системный путь.
Что делать, если при установке Node.js появляется ошибка «command not found»?
Ошибка «command not found» может возникнуть, если Node.js не был установлен, либо не был добавлен в системный путь. Для решения этой проблемы проверьте установку с помощью команды which node, чтобы узнать, установлен ли Node.js. Если Node.js не установлен, используйте apt install nodejs (для Debian/Ubuntu) или yum install nodejs (для CentOS).
Как настроить автоматический перезапуск приложения Node.js на сервере после перезагрузки?
Для автоматического перезапуска приложения Node.js используйте PM2. Установите PM2 с помощью команды npm install pm2 -g. После запуска приложения через pm2 start app.js, настройте автозапуск командой pm2 startup. Затем сохраните текущие процессы с помощью pm2 save, чтобы они запускались автоматически после перезагрузки сервера.
Как исправить ошибку «npm: command not found» при использовании npm?
Ошибка «npm: command not found» может означать, что npm не был установлен или не добавлен в системный путь. Проверьте установку npm командой which npm. Если npm не установлен, попробуйте установить его с помощью sudo apt install npm на Ubuntu/Debian или sudo yum install npm на CentOS. Также можно установить npm через nvm, который управляет версиями Node.js и npm.
Почему приложение Node.js не запускается после перезагрузки сервера?
Если приложение Node.js не запускается после перезагрузки, возможно, оно не настроено на автозапуск. Используйте PM2 для автоматического запуска приложений. Установите PM2 и запустите приложение через pm2 start app.js, затем настройте автозапуск с помощью команды pm2 startup и сохраните процессы командой pm2 save. Также можно настроить autostart через systemd, создав соответствующий unit-файл.
Что делать, если Node.js не работает после установки на хостинге?
Если после установки Node.js на хостинг приложение не запускается или возникает ошибка, сначала убедитесь, что Node.js корректно установлен. Для этого выполните команду node -v, чтобы проверить установленную версию. Если версия не отображается, возможно, Node.js не был установлен или его путь не добавлен в переменную окружения. В таком случае попробуйте переустановить Node.js или использовать менеджер версий nvm, который автоматизирует установку и настройку пути. Если проблема не в установке, проверьте логи ошибок вашего приложения, чтобы выяснить причину сбоя, и убедитесь, что все зависимости установлены правильно с помощью npm install.
