Как запускать node js приложения на своем сервере vds
Если вы используете Node.js как средство серверной разработки для своего сайта или web-приложения, то эта статья для вас, поскольку в ней мы рассмотрим настройку данной программной платформы и правильную организацию структуры папок для корректного функционирования вашего проекта.
Для нужной версии вы сможете также установить и необходимые модули (см. ниже).
На хостинге функционирование Node.js реализовано через специальную библиотеку Passenger, которая осуществляет взаимодействие Вашего сайта с обработчиком Node.js
Рассмотрим структуру папок и файлов. Мы предлагаем реализовать ее примерно следующим образом:
Ваша цель - создать идентичную структуру и разместить файлы в соответствующих схеме директориях. Далее мы наполним их содержимым.
Чтобы сразу начать пользоваться необходимой вам версией Node (при условии, что Вы уже получили доступ по SSH), можете ввести следующие команды в терминале для загрузки и распаковки архива с файлами:
Файлы restart.txt и always_restart.txt необходимы для того, чтобы при внесении вами каких-либо изменений в рабочие файлы (к примеру, app.js) Passenger, применяя правила записанные в .htaccess, мог перехватывать их и применять в работе сайта. Отличие заключается в том, что restart.txt сработает только один раз, а always_restart.txt перезапускает процесы веб-сервера при каждом поступившем запросе. Рекомендуется использовать always_restart.txt только при разработке. После того, как разработка проекта будет завершена, не забудьте удалить этот файл, чтобы избежать задержек при отображении страницы посетителям.
Если Вы уверены в том, что ваш код работает без багов, но всё-равно видите ошибки на странице, можно принудительно завершить все процессы с помощью следующей команды через SSH-соединение:
После чего перезагрузить страницу.
И напоследок, осталось добавить скрипт для запуска Node в app.js. Ниже представлен код с официального сайта Node.js (в дальнейшем вы можете изменять его по своему усмотрению, сейчас мы лишь хотим убедиться, что всё работает):
Итак, все настройки произведены. Откройте сайт в новой вкладке. Если выводится Hello world, то всё работает, как и ожидалось. В противном случае, ещё раз пройдите по вышеприведённому алгоритму действий. Возможно, вы что то упустили.
Чтобы установить какой-либо модуль в директорию с файлами приложения, при этом используя установленную версию Node.js, необходимо для начала прописать путь до исполняемого файла node в .bash_profile (он лежит в корне вашего аккаунта). После этого вы сможете обращаться к нему из любой директории вашего проекта.
Итак, откройте .bash_profile и допишите следующую строку:
Для примера, рассмотрим подключение модуля mysql для работы с базой данных (предварительно, создайте таблицу под любым названием и поместите туда несколько записей). Чтобы установить даный модуль, зайдите через SSH-соединение в директорию «nodejs_app/www» и введите в терминале команду:
Таким обазом создастся файл package.json с данными о вашем приложении. После этого наберите команду:
Вы увидите, что автоматически создастся новая директория «node_modules» и подгрузятся необходимые нам для работы файлы.
Также, рекомендуем загрузить 2 часто используемых модуля - fs (для работы с файлами) и util (для красивого вывода объектов в консоль)
Далее, открываем файл нашего приложения app.js и добавляем следующий код:
В коде выше мы, с помощью модуля fs, создаём новый файл debug.log, в который будем помещать вывод функции console.log
Далее, переопределяем саму функцию console.log, задействуя поток на запись.
Теперь, при помощи модуля mysql, подключаемся к своей БД и выбираем все записи из нужной нам таблицы, прописывая их в созданный нами файл.
Проверим, всё ли сработало: перезагрузите страницу своего сайта и откройте файл debug.log - вы должны увидеть вывод всех записей из таблицы.
Для запуска приложений Node.js через crontab создайте shell скрипт и определите в нём переменную окружения PATH исходя из ваших требований. Например, для запуска приложения с помощью утилиты pm2 (process manager), используйте такой код в shell скрипте:
Удачной работы! Если возникнут вопросы - напишите нам, пожалуйста, тикет из панели управления хостингом, раздел «Помощь и поддержка».
Node.js - это среда выполнения JavaScript с открытым исходным кодом для создания серверных и сетевых приложений. Node js сервер может работать на Linux, macOS, FreeBSD и Windows.
Вы можете запускать приложения Node.js из командной строки, однако подобный подход обычно используется для локального тестирования приложения. В этом руководстве основное внимание будет уделено запуску вашего приложения в "боевом" окружении.
В этой статье мы настроим хостинг Node js server на Ubuntu 18.04. Этот сервер будет запускать приложение Node.js, управляемое PM2 , и предоставлять пользователям безопасный доступ к приложению через прокси-сервер Nginx.
Что вам потребуется
В этом руководстве предполагается, что у вас:
Шаг 1 - Установка Node js
Давайте начнем с установки последней версии LTS Node.js с использованием архивов пакетов NodeSource .
Сначала установите NodeSource PPA, чтобы получить доступ к его содержимому. Убедитесь, что вы находитесь в своем домашнем каталоге, и используйте curl для получения сценария установки для архивов Node.js 8.x:
Вы можете проверить содержимое этого скрипта с помощью nano или предпочитаемого вами текстового редактора:
Когда вы закончите проверку скрипта, запустите его через sudo :
PPA будет добавлен в вашу конфигурацию, и ваш локальный кэш пакетов будет обновлен автоматически. После запуска сценария установки из Nodesource вы можете установить Node js server side:
Чтобы проверить, какую версию Node.js вы установили после этих начальных шагов, введите:
Примечание. При установке из NodeSource PPA вызывается исполняемый файл Node.js nodejs , а не node .
nodejs Пакет содержит nodejs бинарный файл, а также менеджер пакетов npm , так что вам не нужно устанавливать npm отдельно.
npm использует файл конфигурации в вашем домашнем каталоге, чтобы отслеживать обновления. Он будет создан при первом запуске npm . Выполните эту команду, чтобы проверить, что npm установлено, и создать файл конфигурации:
Чтобы некоторые npm пакеты работали (например, требующие компиляции кода из исходного кода), вам необходимо установить build-essential пакет:
Теперь у вас есть необходимые инструменты для работы с npm пакетами, которые требуют компиляции кода из исходного кода.
Установив среду выполнения Node.js, давайте перейдем к написанию приложения Node.js.
Шаг 2 - Создание приложения Node.js
Сначала давайте создадим приложение под названием hello.js :
Вставьте следующий код в файл:
Сохраните файл и выйдите из редактора.
Чтобы протестировать ваше приложение, введите:
Вы увидите следующий вывод:
Примечание. Запуск приложения Node.js таким способом блокирует дополнительные команды до тех пор, пока приложение не будет завершено нажатием CTRL+C .
Чтобы протестировать приложение, откройте другую терминальную сессию на сервере, и подключитесь к localhost с curl :
Если вы видите следующий вывод, приложение работает правильно и прослушивает правильный адрес и порт:
Если вы не видите ожидаемого вывода, убедитесь что ваше Node js приложение запущено и настроено на прослушивание по правильному адресу и порту.
Если вы уверены, что это работает, завершите приложение (если вы еще этого не сделали), нажав CTRL+C .
Шаг 3 - Установка PM2
Далее давайте установим PM2, менеджер процессов для приложений Node.js. PM2 позволяет демонизировать приложения, чтобы они работали в фоновом режиме как службы.
Используйте npm для установки последней версии PM2 на ваш сервер:
-g опция указывает npm установить модуль на глобальном уровне , так что он доступен для всей системы.
Давайте сначала используем pm2 start команду для запуска вашего приложения hello.js , в фоновом режиме:
Это также добавляет ваше приложение в список процессов PM2, который выводится каждый раз, когда вы запускаете приложение:
Как видите, PM2 автоматически назначает App name (на основе имени файла, без .js расширения) и PM2 id . PM2 также поддерживает другую информацию, такую как PID процесса, его текущем состоянии и использовании памяти.
Приложения, работающие в PM2, будут автоматически перезапущены в случае сбоя или уничтожения приложения. Мы можем предпринять дополнительный шаг, чтобы запустить приложение при запуске системы с помощью startup подкоманды.
Эта подкоманда генерирует и настраивает скрипт запуска для запуска PM2 и его управляемых процессов при загрузке сервера:
Последняя строка полученного результата будет включать команду для запуска с привилегиями суперпользователя, чтобы настроить PM2 для запуска при загрузке:
Запустите команду из вывода с вашим именем пользователя вместо alexey :
В качестве дополнительного шага мы можем сохранить список процессов PM2 и соответствующие среды:
Теперь вы создали системный модуль, который запускает pm2 для вашего пользователя при загрузке. Он, в свою очередь, запускает hello.js .
Запустите сервис с systemctl :
Остановите приложение с помощью этой команды (укажите PM2 App name или id ):
Перечислите приложения, в управляемые PM2:
Получить информацию о конкретном приложении, используя его App name :
Монитор процесса PM2 можно вызвать с помощью monit подкоманды. Это отобразит статус приложения, нагрузку на процессор и использование памяти:
При запуске pm2 без каких-либо аргументов будет отображена страница справки с примером использования.
Теперь, когда ваше приложение Node.js запущено и управляется PM2, давайте настроим прокси-сервер.
Шаг 4 - Настройка Nginx в качестве прокси-сервера
Ваше приложение работает и прослушивает localhost , но вам нужно настроить способ доступа к нему ваших пользователей. Для этой цели мы настроим веб-сервер Nginx в качестве прокси-сервера.
Внутри блока server у вас должен быть существующий location / блок. Замените содержимое этого блока конфигурацией ниже. Если ваше приложение настроено на прослушивание другого порта, укажите правильный номер порта:
Как только вы закончите изменение конфигурации Nginx для ваших приложений, сохраните файл и выйдите из редактора.
Если вы работаете с платформой JavaScript, то установка Node JS для VDS значительно расширит возможности. Применив приложение «Ноде.джиэс» пользователь сможет в любую секунду обратится к обширному списку глобальных объектов. В их числе находятся window, document. В результате совмещения, ПО предоставит возможность работать с винчестером, файловой системой, другими находящимися на ПК объектами.
О Node.js простыми словами
Узнать о Node JS что это такое и как пользоваться поможет эта статья. Веб-технологии стремительно вошли в жизнь пользователей Инет-сети. Продолжают активно развиваться. Появление HTML5 многое изменило в поддерживающих его браузерах. Поисковики при каждом обновлении устанавливают свежие коррективы. Новшества требуют также современных инструментов, используемых для разработки интерактивных решений.
Браузерный JavaScript появился в 90-х годах. В тогдашних планах Мозилы это должен был быть простой скриптовый язык, встраиваемый в HTML-код. Предназначение – объединение элементов веб-страницы:
- изображений;
- HTML-разметок;
- плагинов;
- Java-апплетов.
Инструмент предназначался для верстальщиков, веб-дизайнеров, как облегчающее их работу программное обеспечение. Через некоторое время разработчики «ЯваСкрипт» стали использовать платформу для создания условий интерактивным возможностям. Этот функционал сделал платформу программирования одной из самых популярных в мире.
Появление Node JS
Век высоких технологий требовал инструментов, обеспечивающих взаимосвязь с пользователями. «ЯваСкрипт» обросла значительным ПО. Для их работы стали применять компиляторы, специализированные решения. Среди них появилась и веб-платформа «Ноде.джиэс», быстро обретшая популярность у разработчиков.
Новичкам в программировании понять зачем нужен Node JS несложно. В основе веб-платформы имеется движок V8, выполняет передачу команд «ЯваСкрипт» в двоичный код. Простыми словами – «Ноде.джиэс» является приложением C++. Предназначение:
- выполнение JavaScript-code;
- быстрого ввода-вывода в браузере;
- in/off на компьютере юзера;
- создание приложений для ПК.
После доработок «ЯваСкрит» стал полноценным, почти универсальным языком программирования. Сам Node.js не веб-сервер, ни ЯП – это среда, используемая на мэйнфрейме, для полноценной работы JavaScript.
Преимущества Node JS
Основное достоинство веб-платформы – асинхронность в комбинации с событийным подходом. Программирование в такой системе, действие приложений зависит от влияния из вне. Пользователь подает команды или они поступают из сетевого пакета. В итоге программирование интерактивных приложений становится упрощенным, основанным на работе по принципу «in-off». Такими software applications бывают:
- онлайн-чаты;
- интерактивные красочные мэйнфреймы;
- рейтинги, калькуляторы, голосования;
- игровые приложения.
Список можно продолжить, ведь применение «Ноде.джиэс» делает перечень обширным. Постоянное совершенствование приложения увеличивает его возможности. Над проектом работают тысячи специалистов со всего мира. Веб-платформа передается с открытым кодом, что позволяет ей развиваться огромными темпами.
- движок V8;
- широко-известное, простое ПО;
- огромное число готовых модулей;
- богатая внутренняя, множество внешних библиотек.
Имеется в приложении и недостаток. При ограниченных процессорных возможностях нельзя пользоваться неблокируемым «in-off». Но это устраняется разветвлением пула аффинажами, специальными архитектурными легато.
Правильная установка Node JS для VDS
Опытные разработчики умеют подключать Javascript:
- JSON
- JQuery
- Node JS Express
- V8
- ПО управляемое событиями кодинга
- Экосистемы, работающие поверх «Ноде»
Процесс установки описан на официальном сайте, в руководствах. Для каждой ОС имеется соответствующая инструкция, позволяющая даже новичку быстро сориентироваться и поставить приложение.
Node.js установка в Ubuntu
Найти в инет-сети инструкции по установке приложения можно на любую версию «Юбунту». Предложенная ниже предполагает Ubuntu 18.04. Перед установкой следует определить, что не являетесь не рутовым пользователем, имеющим привилегию sudo. Такой вариант настраивается по другой схеме.
Стабильная версия, находящаяся в стандартных репозиториях «Юбунту 18.04», Node.js 8.10.0 обеспечивает однородную среду сразу в нескольких мейнфреймах. Для установки используют пакетный менеджер apt. В первую очередь следует обновить местный индекс пакетов, командой sudo apt update. Затем из репозиториев устанавливают «Ноде» sudo apt install nodejs. Установка на этом заканчивается.
В случае если разработчика не устраивает пакет репозиториев, что чаще всего случается у профессионалов. Потребуется менеджер пакетов npm. Его ставят следующей командой sudo apt install npm. Произведенная операция позволит пользователю без затруднений устанавливать необходимые модули, пакеты.
Работая с установленным «Ноде джиэс» проблем, не возникает. Но если установлена просто версия node, то будут конфликты с другим пакетом. Проверить версию можно командой nodejs -v. После этого следует понять необходима ли дальнейшая работа с разнообразными версиями, их менеджерами и архивами пакетов. Существует и более гибкий метод установки «Ноде».
Использование PPA
Альтернатива вышеописанным способам – использование персонального архива пакетов, поддерживаемый компанией «НодеСоурсе». В архивах версии приложения новее, чем на оф. репозиториях. У разработчика в этом случае есть выбор между v8.x, v10.x.
Сначала устанавливается PPA, а затем пользователь получает доступ к его вложениям. Чтобы получить установочный скрипт, следует убедиться в нахождении на своей домашней директории. После этого при помощи cur1 получают установочный скрипт нужной версии
Содержимое просматривают с помощью nano, других текстовых редакторов nano nodesource setup.sh. Запустив скрипт, имеющий права sudo bash nodesource_setup.sh, вы включите в конфигурацию локальный кэш пакетов, обновляющийся автоматически.
Если вы работает с платформой JavaScript, то установка Node JS для VDS значительно расширит возможности. Применив приложение «Ноде.джиэс» пользователь сможет в любую секунду обратится к обширному списку глобальных объектов. В их числе находятся window, document. В результате совмещения, ПО предоставит возможность работать с винчестером, файловой системой, другими находящимися на ПК объектами.
Что понадобится
Прежде, чем приступить к действиям из руководства, проверьте наличие:
- SSH доступа на VPS, запущенный под Ubuntu 14.04
Шаг 1 — Установка Node js Ubuntu
Node.js уже есть в репозиториях Ubuntu 14.04 по умолчанию. Однако, версия устарела, поэтому рекомендуется вам использовать для установки персональный архив пакетов (PPA) из NodeSource.
Прежде всего, скачайте и добавьте PPA в вашу локальную конфигурацию при помощи следующей команды:
Эта команда установит самую свежую стабильную версию Node.js v6. Если вам нужна 7 версия или любая другая, просто измените setup_6.x на нужную вам версию. Для Node.js v7 команда будет выглядеть так:
ВАЖНО! Если вы получили ошибку, говорящую о том, что curl не установлен (curl is not installed) вы можете его установить запустив sudo apt-get install curl
Теперь вы можете приступить к установке Node js Ubuntu точно также, как вы устанавливаете любые другие пакеты на Ubuntu:
Так как используется флаг ‘-y’, вам не нужно будет подтверждать установку. После того как Node.js установлен вы можете проверить точную установленную версию, запустив:
Результат выполнения команды:
Это всё, вы успешно установили Node js Ubuntu на своём VPS.
Node.js идёт в поставке с менеджером пакетов (NPM), который позволяет вам устанавливать и управлять пакетами Node.js. Для установки пакета запустите:
Шаг 2 — Установка NVM (по желанию)
В Node.js есть менеджер версий (NVM), то есть вы можете установить несколько версий Node.js и легко ими управлять. Для установки NVM вам вначале нужно установить пакет:
После этого можно устанавливать NVM:
Теперь вы можете вновь открыть ваш терминал или запустить упомянутые команды, используя NVM. Чтобы убедиться в том, что NVM установлен верно наберите:
Если вы получите номер версии, это означает, что NVM установлен корректно. Теперь можно использовать NVM для проверки всех доступных версий Node.js:
Результат выполнения команды:
Для установки версии v7.1.0 Node.js просто запустите:
Для использования только что установленной версии Node.js запустите:
Используя тот же метод вы теперь можете устанавливать и управлять несколькими другими версиями Node.js точно также. Вы можете проверить установленную локально версию при помощи следующей команды:
Результат выполнения команды:
Как видно, текущая версия по умолчанию v7.1.0, поэтому вместо набора nvm use v7.1.0 можно просто использовать:
Вы можете также поменять версию по умолчанию:
Заключение
В текущем руководстве вы выучили как устанавливать Node js Ubuntu и управлять Node.js на вашем VPS под Ubuntu 14.04. Обратите внимание, что вы можете использовать эти команды с версиями 16.04 или 12.04 Ubuntu с таким же успехом.
Елена имеет профессиональное техническое образование в области информационных технологий и опыт программирования на разных языках под разные платформы и системы. Более 10 лет посвятила сфере веб, работая с разными CMS, такими как: Drupal, Joomla, Magento и конечно же наиболее популярной в наши дни системой управления контентом – WordPress. Её статьи всегда технически выверены и точны, будь то обзор для WordPress или инструкции по настройке вашего VPS сервера.
Читайте также: