В этой статье мы расскажем, что такое Node.js и как его развернуть на вашем сервере.
Node.js – это кроссплатформенная среда выполнения JavaScript с открытым исходным кодом, которая создана на базе JavaScript-движка Chrome V8.
Цель Node – предоставить разработчикам JavaScript возможность использовать полный стек, позволяя им кодировать операции на стороне сервера.
Сценарии его использования включают скрипты на стороне сервера, системы реального времени, потоковые веб-приложения, одностраничные приложения, инструменты для совместной работы и веб-игры.
Node имеет событийно-ориентированную архитектуру с возможностью асинхронного ввода-вывода. Он невероятно быстр благодаря способности компилировать JavaScript в собственный машинный код. Кроме того, Node может обрабатывать огромное количество активных соединений и позволяет разработчикам легко создавать масштабируемые высокопроизводительные приложения.
Node также использует цикл событий, который позволяет ему выполнять неблокирующие операции ввода-вывода, несмотря на то что JavaScript – это однопоточный язык программирования.
Все эти параметры делают Node одним из самых быстрых вариантов на рынке.
Приложения Node могут масштабироваться как по горизонтали, так и по вертикали. Горизонтальное масштабирование достигается за счет добавления дополнительных узлов к существующей системе, а вертикальное масштабирование означает добавление дополнительных ресурсов к конкретному узлу.
Отличные возможности масштабирования платформы делают ее подходящей как для стартапов, так и для крупных компаний с десятками миллионов ежедневных пользователей – например, LinkedIn, Netflix и PayPal.
Node также хорошо подходит для архитектуры микросервисов, позволяя разработчикам создавать небольшие компоненты, которые вписываются в конвейер непрерывной доставки и могут легко масштабироваться по требованию.
Деплой Node.js-приложения – это процесс размещения и запуска вашего Node.js-приложения на удаленном сервере или хостинге, чтобы оно стало доступным для пользователей.
Это финальная часть в разработке, когда ваше приложение готово к использованию в боевой среде.
Деплой включает в себя несколько основных этапов:
Шаг 1. Подготовьте хост для деплоя
Прежде всего необходимо подготовить хост для деплоя веб-приложения.
Если у вас ещё нет подходящего сервера, то обратите внимание на компанию RU-CENTER, которая предоставляет мощные виртуальные серверы на Linux, обеспечивая высочайший уровень производительности и надежности.
Наши серверы оснащены SSD-дисками для быстрой загрузки и обработки данных, а аппаратная виртуализация KVM гарантирует эффективное использование ресурсов.
С арендой нашего сервера вы получаете полный контроль над настройкой сервера и установкой программного обеспечения.
Выделенные ресурсы предоставляют максимальную мощность для ваших сайтов и приложений, а встроенные механизмы безопасности и регулярные обновления обеспечивают надежную защиту от уязвимостей.
Важно! В этом руководстве мы будем использовать машину с операционной системой Ubuntu.
sudo apt-get update
Чтобы установить Node.js в Ubuntu, можно воспользоваться командой apt-get. Однако стоит учесть, что в стандартных репозиториях Ubuntu может быть устаревшая версия Node.js.
В таком случае вы можете установить более новую версию с помощью пакета «nodejs», который включает в себя движок Node.js и утилиту npm:
sudo apt-get install nodejs
Важно! npm (Node Package Manager) используется для управления пакетами Node.js.
Установите npm, прописав следующую команду:
sudo apt-get install npm
nodejs -v
npm -v
Или:
node --version
npm --version
В выводе вы получите версии Node.js и npm.
Теперь ваш сервер готов к выполнению Node.js-приложений. Вы можете приступить к установке зависимостей и развертыванием вашего приложения.
Шаг 2. Перенесите код на сервер
Деплой Node.js-приложения всегда начинается с переноса кода проекта на хост. Самый удобный и распространенный способ для этого – использование системы управления версиями Git.
git --version
Если Git уже установлен, в выводе появится номер версии. Если же нет, то пропишите следующую команду для его установки:
sudo apt install git
Предположим, что код вашего проекта хранится на GitHub (или на другой платформе управления версиями). Для клонирования репозитория на ваш сервер используйте команду git clone, указав адрес репозитория после нее.
Например, для клонирования репозитория с GitHub:
git clone https://github.com/имя_пользователя/ваш-репозиторий
Здесь https://github.com/имя_пользователя/ваш-репозиторий – это URL вашего репозитория на GitHub. Команда git clone клонирует весь код проекта на ваш сервер.
cd путь-к-вашему-проекту
Теперь код вашего проекта успешно клонирован на сервер.
Шаг 3. Установка зависимостей
После успешного клонирования вашего Node.js-проекта на сервер и перехода в его директорию, необходимо установить зависимости. Под этим подразумевается установка всех необходимых пакетов для вашего проекта.
Это можно сделать с помощью npm, которую вы установили в шаге 1.
Важно! Вы обязательно должны находиться в той директории, где расположены файлы вашего Node.js-проекта, включая файл package.json.
npm install
Эта команда просматривает файл «package.json», который находится в корневой директории вашего проекта, и устанавливает все пакеты из раздела «Dependencies». Они будут загружены и установлены в папку «node_modules».
В зависимости от количества зависимостей установка может занять некоторое время.
node myapp.js
Где «myapp.js» – это имя вашего корневого файла приложения.
После выполнения этих шагов ваше Node.js-приложение успешно запустится на сервере и будет готово к обслуживанию запросов.
Шаг 4. Управление запуском и обновлением приложения
Используя менеджер процессов pm2, вы можете решить две распространенные проблемы: остановку приложения при закрытии терминала и необходимость ручного перезапуска приложения после внесения изменений в код.
Вот как выполнить эту настройку:
sudo npm install pm2 -g
Она позволит использовать pm2 в любом месте на вашем сервере.
sudo pm2 start myapp.js --name "myweb-app" --watch
Где:
sudo pm2 startup
sudo pm2 save
Что делают эти команды:
Теперь ваше Node.js-приложение работает в фоновом режиме, а pm2 следит за ним. Оно будет автоматически перезапускаться при изменениях в коде и запускаться после перезагрузки сервера, даже если вы закроете терминал. Это делает процесс деплоя и управления Node.js-приложением более удобным и надежным.
В статье мы рассмотрели важные шаги и методы для успешного деплоя Node.js-приложения.
С деплоем Node.js-приложений на сервере вы можете предоставить вашим пользователям доступ к вашему приложению в онлайн-среде и обеспечить его стабильную и надежную работу.
Мы надеемся, что данное руководство было полезным для вас, и оно поможет вам успешно развернуть ваши проекты на сервере.