Стек MEAN на VPS за 10 минут!
С недавних пор на виртуальные сервера от SpaceWeb можно установить платформу Node.js в пару кликов. Node.js — это платформа для выполнения JavaScript кода на сервере.
В этой статье мы разберем упрощенную установку и настройку окружения для разработки и запуска JavaScript приложений на виртуальном сервере. В качестве окружения (стека технологий) будем использовать стек MEAN, в состав которого входит платформа Node.js.
Пара слов о стеках технологий на серверах
На нашем виртуальным хостинге клиенты по умолчанию используют один из самых популярных стеков технологий (набор программ) — LAMP (ОС Linux , веб-сервер Apaсhe, СУБД MySQL, ЯП PHP). Альтернативой ему может служить стек LEMP, в котором в качестве веб-сервера выступает известный Nginx.
Эти два стека используются на хостингах повсеместно, так как для работы сайтов в интернете чаще всего используется серверный язык PHP, в том числе и для сайтов на CMS. В совокупности с какой-нибудь серверной операционной системой из семейства Linux, веб-сервером Apache/Nginx и СУБД MySQL получается эталонный стек, который подойдет для большинства среднестатистических сайтов.
Однако, далеко не все разработчики пишут на языке PHP, да и язык мягко говоря не подходит для разработки приложений или ботов. В этом случае разработчику нужное другое серверное окружение и таким окружением может быть стек MEAN, MERN или MEVN.
Расшифровка:
- MEAN: MongoDB (СУБД), Express (Back-end фреймворк), Angular (Front-end фреймворк), Node.js (Среда выполнения JavaScript).
- MERN: MongoDB, Express, React.js, Node.js.
- MEVN: MongoDB, Express, Vue.js , Node.js.
В данной статье мы установим на сервер стек MEAN, так как JavaScript-фреймворк Angular активно развивается компанией Google и в ближайшие годы не потеряет своей актуальности.
Заказ VPS с Node.js
Для заказа виртуального сервера с платформой Node.js перейдите на наш сайт хостинга в раздел «VPS»
Выберите подходящий по ресурсам тариф и в поле ПО укажите Node.js. Обратите внимание, что на данный момент Node.js доступен для установки только на серверы с дистрибутивом Ubuntu 20.04.
После регистрации и заполнения реквизитов владельца аккаунта вы можете взять виртуальный сервер c Node.js на бесплатный тест в течение 3 дней или оплатить услугу на нужный вам период.
Установка и настройка стека MEAN на виртуальном сервере
Для настройки стека MEAN понадобится немного поработать с консолью сервера. Подключитесь к VPS по протоколу SSH, например, с помощью программы Putty. Логин и пароль для авторизации на сервере вы можете найти на контактной почте.
После авторизации обновите системные пакеты следующей командой
apt-get update -y
Далее установите актуальную версию СУБД MongoDB.
apt-get install mongodb -y
Включение СУБД MongoDB выполняется следующими командами
systemctl start mongodb
systemctl enable mongodb
Следующие службы необходимо установить для корректной работы стека MEAN на сервере
apt-get install curl gnupg2 unzip git gcc g++ make -y
И несколько важных пакетов
npm install -g yarn
npm install -g gulp
npm install pm2 -g
Загрузка актуальной версии стека MEAN из репозитория происходит следующей командой
git clone https://github.com/meanjs/mean
Теперь перейдите в директорию mean и установите в нее менеджер пакетов yarn
cd mean
yarn install
Тестирование стека MEAN
Откройте конфигурационный файл server.js
Замените содержимое в этом файле на строки ниже и сохраните
const express = require(‘express’);
const MongoClient = require(‘mongodb’).MongoClient;
const app = express();
app.use(‘/’, (req, res) => <
MongoClient.connect(«mongodb://localhost:27017/test», function(err, db) <
db.collection(‘Example’, function(err, collection) <
collection.insert(< pageHits: 'pageHits' >);
db.collection(‘Example’).count(function(err, count) <
if(err) throw err;
res.status(200).send(‘Page Hits: ‘ + Math.floor(count/2));
>);
>);
>);
>);
app.listen(3000);
console.log(‘Server running at http://localhost:3000/’);
Запустите сохраненный файл server.js следующей командой
pm2 start server.js
На экране консоли должен появиться подобный вывод
Для тестирования работоспособности стека MEAN введите в браузер адрес http://ip-сервера:3000
Чтобы убедиться, что стек работает корректно, обновите страницу. Если количество Page Hits меняется при каждом обновлении, то стек MEAN (в частности веб-сервер) работает корректно, можете перейти к деплою JavaScript-приложения на вашем виртуальном сервере.
Удаленный рабочий стол на VDS с Ubuntu 22.04
Что такое OpenLiteSpeed?
Обзор панели FASTPANEL — установка и настройка
Отличные VPS на NVMe-дисках и бесплатный тестовый период 3 дня!
Отличные VPS на NVMe-дисках и бесплатный тестовый период 3 дня!
Еще на эту тему:
- Главная
- Сервера
- Стек MEAN на VPS за 10 минут!
Выгодное предложение SpaceWeb:
- до 30% вознаграждение ежемесячно,
- быстрая оплата на карту,
- работа по договору,
- Хостинг сайтов
- VPS/VDS
- Регистрация доменов
- Конструктор сайтов
- Аренда серверов
- SSL-сертификаты
- Лицензии на CMS
- Контакты
- Новости компании
- Отзывы клиентов
- Реквизиты
- Whois сервис
- +7 (812) 209-41-49 (в Санкт-Петербурге)
- +7 (495) 109-41-49 (в Москве)
- 8 (800) 777-86-49 (бесплатно по России)
© 2001-2023 ООО «СпейсВэб» Все права защищены.
Лицензия на предоставление телематических услуг связи № 163230 .
Общество с ограниченной ответственностью «СпейсВэб». Генеральный директор: Шпагин А.Ю. Юридический адрес: 198095, город Санкт-Петербург, улица Маршала Говорова, дом 35, корпус 5, литер Ж, этаж 4, офис 371. Адрес офиса: 198095, Санкт-Петербург, ул. Маршала Говорова, д. 35, корп. 5, лит. Ж, бизнес-центр «Терминал», офис 401.
Поставить впс ноде js что это
Node.js — это платформа с открытым исходным кодом, которая помогает пользователям JavaScript выполнять свой код вне веб-браузера. Это бесплатное решение, которое хорошо работает практически в любой операционной системе. Что касается хостинга, VPS-серверы предоставляют идеальную среду для интеграции приложений Node.js с инструментами разработчика и API.
Давайте посмотрим, что вам нужно сделать, чтобы использовать Node.js как на управляемых, так и на самоуправляемых серверах VPS.
Что такое Node.js?
Node.js — это кроссплатформенная среда выполнения JavaScript, управляемая событиями. Он построен на движке JavaScript V8 Chrome наряду с другими средами разработки, такими как MongoDB, Express.js и AngularJS. Node.js позволяет использовать JavaScript для создания веб-серверов, сетевых инструментов и модулей, отвечающих за ряд основных функций.
Поскольку Node.js работает только с JavaScript, он более доступен для широкого сообщества разработчиков. В то же время API, используемые его модулями, упрощают процесс написания серверных приложений.
Хотя вы можете запускать свои приложения NodeJS без него, эксперты рекомендуют установить npm — официальный менеджер пакетов Node.js. Он состоит из клиента и онлайн-базы данных (реестра npm), содержащей более 1 миллиона бесплатных и платных пакетов. Благодаря npm разработчики со всего мира могут использовать огромный пул готовых ресурсов, которые помогают им ускорить процесс разработки.
Почему Node.js?
Node.js дает множество преимуществ. Во-первых, это уже молниеносная среда написания сценариев, и, поскольку она построена на движке Google, ее производительность, вероятно, со временем улучшится. Реестр npm также расширяется, поэтому разработчикам, вероятно, будет еще легче найти то, что они ищут в будущем.
Однако скорость — далеко не единственное, чем славится Node.js. Прочтите об этом в Интернете, и вы увидите, что большинство людей много говорят об его асинхронной, управляемой событиями архитектуре.
Давайте посмотрим на это поближе и посмотрим, какую выгоду могут извлечь разработчики.
Чтобы понять, как это работает, нам нужно сравнить его с одной из альтернатив. PHP используется почти на 80% веб-сайтов в мире, поэтому мы будем использовать его в качестве примера. Если приложению PHP предлагается открыть файл, оно не будет обрабатывать другие запросы, прежде чем откроет указанный файл. Все последующие запросы зависят от выполнения первого.
В отличие от этого, архитектура Node.js является асинхронной, что означает, что несколько запросов могут обрабатываться одновременно. Один запрос не должен ждать выполнения другого, а доставка контента намного эффективнее. В результате приложения, созданные с помощью Node.js, являются быстрыми, надежными и легко масштабируемыми.
В свете всего этого неудивительно, что такие технологические гиганты, как IBM, LinkedIn, Netflix и PayPal, использовали Node.js при разработке некоторых своих продуктов.
Для чего используется Node.js?
Node.js существует с 2009 года, что не так давно по сравнению с другими веб-технологиями. Тем не менее, он уже зарекомендовал себя как надежная среда разработки с десятками применений в различных сферах.
Вот где он наиболее ярко проявляется:
Чат-приложения
Возможность эффективно доставлять динамический контент в сочетании с наличием библиотек JavaScript для веб-приложений в реальном времени делает Node.js идеальным для разработки отличных служб обмена мгновенными сообщениями.
Браузерные игры
HTML5 и развитие других технологий означают, что теперь вы можете создавать отличные браузерные игры, не полагаясь на ужасные Flash-анимации. Node.js — одна из лучших новых альтернатив.
Потоковые приложения
И снова асинхронный ввод-вывод в Node.js позволяет потоковым сервисам предоставлять высококачественное видео в реальном времени сотням тысяч пользователей одновременно.
Бэкэнд-инструменты
JavaScript в основном связан с интерфейсной разработкой, но правда в том, что существуют библиотеки JS, которые позволяют разработчикам создавать быстрые и надежные приложения командной строки с помощью Node.js.
Системные требования Node.js
Легкий дизайн Node.js — одна из вещей, которые сделали его таким популярным среди разработчиков. Вы должны помнить, что вам понадобится достаточно мощное оборудование, если вы хотите использовать Node.js в Windows. Однако, когда дело доходит до Linux, использование ресурсов настолько низкое, что вы можете запускать стандартные приложения Node.js даже на Raspberry Pi.
Существуют версии Linux для ARM и 64-битных архитектур, а в Windows он работает как на 32-, так и на 64-битных машинах. Серверы macOS нуждаются в 64-битных чипах для запуска Node.js, а также есть официальный образ для контейнеров Docker.
В общем, Node.js может работать на большинстве современных установок.
Установка Node.js и npm
Поскольку он доступен во многих различных операционных системах и установках, не существует универсального учебника, который бы показал вам точные шаги по установке Node.js. Большинство VPS-серверов веб-хостинга работают на Linux, поэтому мы сосредоточимся на нем. Однако даже при этом процесс установки варьируется от дистрибутива к дистрибутиву. Вот два наиболее распространенных сценария.
Установка Node.js и npm из официального репозитория Ubuntu
Node.js достаточно популярен, чтобы попасть в официальные репозитории программного обеспечения одного из самых популярных в мире дистрибутивов Linux — Ubuntu. Если ваш VPS использует Ubuntu, установка Node.js включает несколько простых шагов. Давайте посмотрим на них.
1. Обновите свой VPS
Перед установкой Node.js рекомендуется обновить индекс пакетов для вашего виртуального сервера Ubuntu. Вы можете сделать это с помощью следующей команды:
sudo apt-get update
2. Установите Node.js.
Поскольку Node.js является частью официального репозитория Ubuntu, вы можете установить его с помощью одной команды:
sudo apt-get install nodejs
ПРИМЕЧАНИЕ. Если вы воспользуетесь этим подходом, Ubuntu установит последний доступный пакет из репозитория. Этот метод установки не подходит, если вам нужна конкретная версия Node.js.
3. Установите npm
И снова вы можете установить последнюю версию npm с помощью одной команды:
sudo apt-get install npm
4. Убедитесь, что установка прошла успешно.
Самый простой способ убедиться, что установка прошла успешно — спросить Ubuntu, какие версии Node.js и npm вы используете в настоящее время.
Для Node.js команда:
а для npm вам нужно ввести:
Установка Node.js вручную
Если вы не используете Ubuntu или предпочитаете установить версию Node.js, отличную от последней, вы можете выполнить установку вручную. Это немного сложнее, чем настроить его прямо из репозитория, но если вы будете осторожны, у вас не должно возникнуть проблем с этим. Вот шаги:
1. Скачайте и распакуйте архив Node.js.
Сначала вам нужно убедиться, что вы находитесь в своем домашнем каталоге. Команда идти прямо там:
Затем вы можете использовать следующую команду для загрузки архива Node.js:
ПРИМЕЧАНИЕ. С помощью этой команды вы загрузите версию 14.18.1 ( последняя на момент написания ). Если вы хотите загрузить другую версию Node.js, вам необходимо соответствующим образом изменить URL-адрес.
2. Распаковать архив
Чтобы извлечь только что загруженный архив Node.js, используйте следующую команду:
tar xvf node-v14.18.1-linux-x64.tar.xz
Файлы будут извлечены в новый каталог с именем node-v14.18.1-linux-x64.
3. Переименуйте каталог Node.js, чтобы облегчить себе жизнь.
Хотя это и не обязательно, этот шаг упростит процесс установки. Что мы сделаем, так это переименуем папку с извлеченными файлами из node-v14.18.1-linux-x64 во что-то менее громоздкое, например, node Вот команда:
mv узел-v14.18.1-linux-x64 узел
4. Установите двоичные файлы Node.js и npm.
Последние три команды создадут требуемый каталог, скопируют в него двоичные файлы и создадут необходимые символические ссылки:
/ bin
cp node / bin / node
bin
ln -s ../node/lib/node_modules/npm/bin/npm-cli.js npm
5. Убедитесь, что установка прошла успешно.
Еще раз, вы можете спросить Linux, какие версии Node.js и npm установлены на сервере, чтобы убедиться, что все в порядке. Команды следующие:
В нашем случае ответы должны быть v14.18.1 и 6.14.15 соответственно.
Запуск приложений Node.js
Установив на свой сервер Node.js и npm, вы, вероятно, задаетесь вопросом, как запустить с ними приложение. Как вы собираетесь это делать, зависит от самого приложения.
Использование npm
Если вам нужно запустить готовое к работе приложение с допустимым файлом package.json, вы можете использовать диспетчер пакетов npm. Команда такая:
nohup npm start –производство и
Использование узла
Если в вашем приложении нет файла package.json, вам нужно использовать сам Node.js. Вы можете сделать это с помощью следующей команды.
nohup node [название вашего приложения] .js &
Обратите внимание: если вы решите запустить приложение, не имеющее включенного файла package.json, вы не сможете управлять им с помощью npm.
Как остановить приложение
Чтобы завершить работающее приложение, нам нужно убить процесс. К счастью, есть простая команда, чтобы остановить любые процессы Node.js на сервере:
Подключите свой веб-сервер к работающему приложению Node.js
Из — за различные комбинации технологий а VPS может обрабатывать, есть много способов подключения вашего сайта в приложение Node.js. Поскольку Apache — один из наиболее распространенных веб-серверов, мы будем использовать его в качестве демонстрационной платформы.
Мы хотим использовать файл .htaccess для установления соединения между веб-сайтом и приложением Node.js.
Файл .htaccess находится в корневой папке документа ( home / [ваше имя пользователя] / public_html / ). Если на вашем сервере установлена панель управления веб-хостингом, вы можете получить к ней доступ через встроенный файловый менеджер. В противном случае вы можете получить доступ к серверу через SSH и открыть его в текстовом редакторе.
Вот что вам нужно добавить в ваш файл .htaccess:
DirectoryIndex отключен
RewriteEngine On
RewriteRule ^ $ http://127.0.0.1:XXX/ [P, L] RewriteCond% ! -F
RewriteRule ^ (. *) $ Http://127.0.0.1:XXX/$1 [P, L]
Замените «XXX» номером порта вашего приложения Node.js. После этого не забудьте сохранить изменения в файле .htaccess перед выходом из редактора.
Развертывание приложения Node.js с помощью SPanel
Те из вас, кто находит все эти шаги немного пугающими, будут счастливы узнать, что, если у вас есть SPanel VPS, вам не нужно проходить ни один из них.
Интеграция Node.js была одной из наиболее востребованных функций нашими клиентами SPanel, и у нас не было другого выбора, кроме как ее реализовать. Серверы SPanel всегда поддерживали Node.js, но сейчас вам не нужно устанавливать его самостоятельно или просить об этом кого-то другого.
Node.js устанавливается и настраивается на всех серверах SPanel, а внутри нашей проприетарной платформы управления вы найдете простой в использовании инструмент, который поможет вам запускать приложения в несколько кликов. Вот все шаги:
1. Загрузите приложение в любую папку по вашему выбору.
Вы можете использовать свой любимый FTP-клиент или диспетчер файлов SPanel для загрузки приложения Node.js с локального компьютера на виртуальный сервер.
2. Разверните приложение с помощью диспетчера NodeJS в SPanel.
Диспетчер NodeJS от SPanel доступен в пользовательском интерфейсе.
Кнопка « Развернуть новое приложение» открывает всплывающее окно, позволяющее быстро запустить приложение. Все, что вам нужно сделать, это указать URL-адрес приложения, порт, который оно будет прослушивать, и путь к самому приложению.
ПРИМЕЧАНИЕ. Для приложений Node.js вы можете использовать только порты от 3000 до 3500.
Щелкните Развернуть, чтобы завершить процесс.
3. Управляйте своими приложениями на Node.js.
Диспетчер NodeJS от SPanel отображает список всех развернутых на данный момент приложений Node.js. Выпадающие меню « Действия» позволяют вам по очереди останавливать, перезапускать и отменять развертывание.
Заключение
Если вы хотите создать простой блог или небольшой интернет-магазин, вам, вероятно, не понадобится Node.js. Среда выполнения JavaScript больше подходит для более сложных проектов, обычно возглавляемых людьми с большим опытом в этой области.
С правильными командами у них не должно возникнуть проблем с установкой и использованием Node.js на самоуправляемом виртуальном сервере. Однако даже самые большие мастера командной строки оценят удобство запуска приложений из удобного графического пользовательского интерфейса, такого как NodeJS Manager от SPanel.
Часто задаваемые вопросы
Должен ли я платить за использование Node.js?
Node.js имеет открытый исходный код и бесплатен для использования. При этом, если вы разрабатываете свой проект Node.js в проприетарной интегрированной среде разработки (IDE), вероятно, будет взиматься плата, поскольку это коммерческий продукт.
Что такое НПМ?
NPM — это сокращение от Node Package Manager. Он служит репозиторием для пакетов JavaScript, которые разработчики включают в свои проекты. Это также дает веб-разработчикам возможность управлять определенной версией каждого пакета.
поставить впс ноде js что это
Как установить на VPS Node js Ubuntu
Что понадобится
- SSH доступа на VPS, запущенный под Ubuntu 14.04
Шаг 1 — Установка Node js Ubuntu
Шаг 2 — Установка NVM (по желанию)
Заключение
Свой Node.js хостинг на VPS
1. Регистрация на DigitalOcean
2. Создаем SSH-ключ
- В качестве hostname укажите доменное имя или что-нибудь осмысленное, это название роли не играет
- Размер выбирайте самый маленький, его потом можно будет увеличить из терминала
- Регион любой, я выбрал Амстердам
- Образ выберите на вкладке Applications, c названием «Dokku v0.2.3 on Ubuntu. » или похожим
- Укажите SSH-ключ, который мы создали на предыдущем шаге
4. Настройка Дроплета и DNS
Теперь нужно настроить новосозданный сервер. Зайдите в браузере по IP-адресу дроплета и вы увидете экран настройки. Если такой страницы нет, смотрите что делать в конце статьи.
Здесь вы должны убедится, что поле «Public Key» заполнено. Если нет — укажите свой public key из недавно сгенерированного ключа. Однако практика показала, что лучше вообще удалить такой дроплет и создать новый, правильно указав SSH-ключ.
5. Настраиваем использование SSH
2. Создал дроплет, но по IP адресу нет страницы настройки dokku
- указать образ с Dokku
- нажмите кнопку «Rebuild from Image».
3. Не могу получить доступ к дроплету ни по паролю, ни по SSH
- Наверное, вы как-то пропустили шаг настройки dokku, или dokky создался не правильно.
- Проверьте, если доступна страница настройки dokku по IP адресу дроплета, то вернитесь к шагу 4 создания VPS.
- Если страницы настроек нет, тогда попробуйте сбросить пароль и повторить попытку доступа через терминал. Если даже в этом случае доступ по паролю будет неудачным, тогда переустановите дроплет, как описано в предыдущем пункте.
6. Я пропустил создание SSH, и теперь хочу сделать авторизацию по SSH-ключу
Создание простого веб-сервера с помощью Node.js и Express
- Node.js;
- Express;
- npm;
- создании маршрутов Express;
- обслуживании HTML;
- настройке статических ресурсов Express.
Добавление Express
Создание сервера Express
- Первая импортирует Express в проект, чтобы его можно было использовать. При каждом добавлении в проект пакета необходимо импортировать его туда, где он будет использоваться.
- Вторая строка вызывает функцию express , которая создает новое приложение, после чего присваивает результат константе app .
- Он связан с HTTP-глаголом — в данном случае GET.
- Он получает URL — здесь это домашняя страница ( / ).
- Он получает функцию, которая будет вызываться при обращении к конечной точке.
- Текущую рабочую директорию (cwd).
- Вторую директорию, которую нужно объединить с cwd.
Создание каталога public и добавление ресурсов
First of all, it is required to access the server in question via SSH as a root user.
In case you are using a Unix-based OS (Linux or macOS), you can easily run the Terminal
Application (a command line emulation program and connect to the server) using the command:
ssh root@serverip -pPORT
This command has the following values:
Serverip — the IP address of your VPS or Dedicated server
PORT — 22.
If you’re using Windows OS, you can do this through an SSH client. You can find a list of free SSH clients here.
In the next example, we used the PuTTY SSH client to install Node.js:
1. Open PuTTY to launch the configuration screen. Here, you should fill out the following fields:
Host Name: the IP of the server;
Port: your server’s port (22 by default);
Connection type: SSH.
It should look something like this:
2. The PuTTY Security Alert screen prompt (pictured below) appears the first time you connect. Click Yes:
You are now looking at the SSH prompt login screen:
3. When prompted with login as:
Enter your username — root and press Enter.
After that, enter your root password and press Enter.
PLEASE NOTE: your password won’t be visible upon entry. It is an intentional security feature.
Completing these three steps logs you into your SSH server. From here, you can install Node.js.
4. To download Node.js version 10 LTS archive in your root home directory, type in the following command:
We’ve used this version as an example. If you need a different version, you can select an alternative from the official versions here.
5. It’s now time to unpack the downloaded archive. Use the command:
6. Replace node-v10.16.3-linux-x64.tar.xz with the name of the archive you have downloaded in
your case.
Executing this command launches a long prompt with the names of the files that are getting extracted.
No worries; this is absolutely normal. It means that the unpacking process was successful.
7. Rename the extracted folder to nodeext with the following command:
9. Node.js and NPM should now appear on the server. You can double-check they installed with the following commands:
This guide describes the installation of Node.js and NPM on the server.
Naturally, you would like to use them with an actual application. There are different possible configurations for Node.js apps; as such, there are multiple ways to run them.
To run a Node.js application that is production-ready and has a package.json file included, you can use the following command:
In the case you are running a Node.js app that does not have a package.json file included, you can use the following prompt:
In this case, you won’t be able to manage this application with npm.
To stop a running Node.js application, you can execute the following command via SSH:
This command kills any Node processes on the server.
Apache is standard for cPanel installations. If you run Apache,you can use a specific
.htaccess file code to make your site work with the Node.js app. Follow these steps:
1. Open up your cPanel and go to File Manager >> public_html folder.
NOTE: public_html is the folder of your site if the domain you are using is the primary domain of the given cPanel account. In case your domain is an addon domain, please check the cPanel >> Domains menu to see what folder it uses.
2. Click on the Settings button on the upper-right and make sure that the Show Hidden Files (dotfiles) option is checked. Click Save after that.
In case the .htaccess file does not exist yet, create it using the + File option on the upper-left and create the file.
Установка Node.JS на Linux-сервере
Node.JS — это среда исполнения JavaScript-кода. Она основана на движке V8, использующемся в браузере Google Chrome. С помощью Node.JS на JavaScript можно писать серверные приложения или бэкенд для сайтов.
Установка Node.JS на сервер может понадобиться по разным причинам. От них зависит выбор способа установки:
- обучение и эксперименты — установка из репозиториев операционной системы;
- развёртывание готового проекта на Node.JS — установка из репозиториев NodeSource;
- разработка — установка с помощью менеджера версий nvm
Для установки подключитесь к серверу по SSH.
Узнать последнюю актуальную версию Node.JS можно на официальном сайте:
Установка Node.JS из репозиториев операционной системы
При установке из стандартного репозитория вы получите неактуальную версию — ту, которая была доступна на момент выпуска вашей операционной системы. Для разработки или подготовки сервера под боевой проект этот способ установки не подойдёт. Но для обучения или экспериментов с кодом использовать можно.
Чтобы проверить доступную для установки версию, используйте команду:
Ubuntu и Debian:
Centos:
Установка выполняется за один шаг:
Ubuntu и Debian:
Centos:
Чтобы убедиться, что установка прошла корректно, проверьте версию Node.JS и пакетного менеджера npm :
Ubuntu и Debian:
Centos:
Установка Node.JS из репозиториев NodeSource
При этом способе установки можно установить актуальную версию Node.JS. Список поддерживаемых операционных систем можно увидеть здесь.
Для установки потребуется curl . Во многих современных дистрибутивах Linux-систем он установлен по умолчанию. При необходимости можно выполнить ручную установку:
Ubuntu и Debian:
Centos:
Для примера выполним установку последней стабильной версии Node.JS. Для этого нужно выполнить команды:
Ubuntu и Debian:
Centos:
Чтобы убедиться, что установка прошла корректно, проверим версию Node.JS и пакетного менеджера npm :
Ubuntu и Debian:
Centos:
Установка Node.JS с помощью менеджера версий nvm
Node Version Manager, или nvm , позволяет устанавливать любые версии Node.JS и при необходимости переключаться между ними. Инструкция по установке последней версии nvm доступна в описании официального Github-репозитория.
Для примера установим текущую актуальную версию nvm . Для этого, как в предыдущем случае, нам понадобится curl . С его помощью мы скачаем и запустим скрипт установки:
Скрипт установит nvm в домашнюю папку текущего пользователя (в примере это пользователь root и его папка /root ) и добавит алиас для вызова менеджера в конфигурационный файл пользователя. Чтобы обновить терминал с учётом этих изменений, введите команду:
После этого проверим версию nvm , чтобы убедиться, что установка выполнена корректно:
Теперь мы можем использовать весь функционал nvm .
Просмотреть полный список доступных к установке версий Node.JS можно с помощью команды:
Установить самую последнюю версию Node.JS можно следующим образом:
node в примере — это алиас к последней актуальной версии.
Установить конкретную версию из списка доступных можно так:
где v12.19.0 — номер необходимой версии Node.JS, который можно скопировать в выводе команды nvm ls-remote .
После установки проверьте, что Node.JS установлен корректно, с помощью команды:
Для проверки списка уже установленных версий Node.JS введите в терминале:
Между установленными версиями можно переключаться. Например, в примере с помощью nvm у нас используется версия v12.19.0 . Помимо неё мы можем переключиться на ранее установленную системную версию (которую можно установить одним из предыдущих способов установки Node.JS) или любую другую:
Удалить установленную с помощью nvm версию Node.JS можно в два шага:
Проверяем, какая версия Node.JS сейчас используется:
Если используется та версия, которую нужно удалить, сначала необходимо деактивировать её, после чего уже выполнить удаление:
Installing Node.js on a VPS Server
Node.js is an open-source platform that helps JavaScript users execute their code outside a web browser. It is a free solution that runs well on almost any operating system. In terms of hosting, VPS servers provide a perfect environment to integrate Node.js apps with developer tools and APIs.
Let’s see what you need to do to use Node.js on both managed and self-managed VPS servers.
What is Node.js?
Node.js is a cross-platform, event-driven JavaScript runtime environment. It is built on Chrome’s V8 JavaScript engine alongside other development frameworks like MongoDB, Express.js, and AngularJS. Node.js lets you use JavaScript to create web servers, networking tools, and modules responsible for a number of core functions.
Because Node.js works with JavaScript only, it’s more accessible to a broad community of developers. At the same time, the APIs its modules use simplify the process of writing server applications.
Although you can run your NodeJS apps without it, experts recommend installing npm – Node.js’s official package manager. It consists of a client and an online database (the npm registry) of over 1 million free and paid-for packages. Thanks to npm, developers from all over the world can tap into an enormous pool of ready-made resources that help them speed up the development process.
Why Node.js?
Node.js brings many advantages to the table. For one, it’s already a lightning-fast scripting environment, and since it is built on Google’s engine, its performance is likely to improve over time. The npm registry is also expanding, so developers will probably have an even easier time finding what they’re looking for in the future.
Speed is far from the only thing Node.js is famous for, though. Read about it on the internet, and you’ll see that most people talk extensively about its asynchronous, event-driven architecture.
Let’s take a closer look at it and see how developers can benefit from it.
To understand how it works, we need to compare it to one of the alternatives. PHP is used by almost 80% of the world’s websites, so we’ll use it as an example. If a PHP application is asked to open a file, it won’t handle any other requests before it opens the said file. All subsequent requests depend on the execution of the first one.
By contrast, Node.js’s architecture is asynchronous, meaning multiple requests can be processed simultaneously. One request doesn’t need to wait for the execution of another, and the content delivery is much more efficient. As a result, the applications created with Node.js are fast, robust, and easily scalable.
In light of all this, it’s little wonder that tech giants like IBM, LinkedIn, Netflix, and PayPal have used Node.js during the development of some of their products.
What is Node.js Used For?
Node.js has been around since 2009, which isn’t that long compared to other web technologies. Nevertheless, it has already proven its worth as a robust development framework with dozens of uses in a number of different spheres.
Here’s where it shines the most:
Chat applications
The ability to efficiently deliver dynamic content, coupled with the existence of JavaScript libraries for real-time web applications, make Node.js perfect for developing excellent instant messaging services.
Browser games
HTML5 and the evolution of other technologies mean that you can now create great browser-based games without relying on horrible Flash animations. Node.js is one of the best new alternatives.
Streaming applications
Once again, Node.js’s asynchronous I/O enables streaming services to provide real-time, high-quality video to hundreds of thousands of users at once.
Back end tools
JavaScript is mainly associated with front-end development, but the truth is, there are JS libraries that enable developers to create fast and reliable command-line apps with Node.js.
Node.js System Requirements
Node.js’s lightweight design is one of the things that has made it so popular with developers. You have to bear in mind that you’ll need reasonably powerful hardware if you want to use Node.js on Windows. However, when it comes to Linux, the resource usage is so low, you can run standard Node.js applications even on a Raspberry Pi.
There are Linux versions for ARM and 64-bit architectures, and on Windows, it runs on both 32- and 64-bit machines. macOS servers need 64-bit chips to run Node.js, and there’s also an official image for Docker containers.
All in all, Node.js can run on most modern setups.
Installing Node.js and npm
Because it’s available on so many different operating systems and setups, there’s no one-size-fits-all tutorial that will show you the exact steps for installing Node.js. Most web hosting VPS servers run on Linux, so we’ll focus on it. Even with it, however, the installation process varies from distribution to distribution. Here are the two most common scenarios.
Installing Node.js and npm from the Ubuntu Official Repository
Node.js is popular enough to make its way into the official software repositories of one of the world’s most popular Linux distributions – Ubuntu. If your VPS uses Ubuntu, installing Node.js involves a few simple steps. Let’s have a look at them.
1. Update Your VPS
Before installing Node.js, it is advisable to update the package index for your Ubuntu virtual server. You can do so with the following command:
sudo apt-get update
2. Install Node.js
Because Node.js is a part of Ubuntu’s official repository, you can install it with a single command:
sudo apt-get install nodejs
NOTE: If you take this approach, Ubuntu will install the latest available package from the repository. This installation method isn’t suitable if you need a specific version of Node.js.
3. Install npm
Once again, you can install npm’s latest version with a single command:
sudo apt-get install npm
4. Verify that the installation is a success
The easiest way to ensure that the installation is successful is to ask Ubuntu which versions of Node.js and npm you’re currently using.
For Node.js, the command is:
and for npm, you need to enter:
Installing Node.js Manually
If you don’t run Ubuntu or prefer to install a version of Node.js other than the latest one, you can perform the installation manually. It’s a bit more complicated than setting it up straight from the repository, but as long as you’re careful, you should have no problems doing it. Here are the steps:
1. Download and extract the Node.js archive
You first need to make sure you’re in your home directory. The command to go straight there is:
Next, you can use the following command to download the Node.js archive:
NOTE: With this command, you will download version 14.18.1 (the latest at the time of writing). If you want to download a different version of Node.js, you’ll need to adjust the URL accordingly.
2. Extract the archive
To extract the Node.js archive you’ve just downloaded, use the following command:
tar xvf node-v14.18.1-linux-x64.tar.xz
The files will be extracted in a new directory called node-v14.18.1-linux-x64.
3. Rename Node.js’s directory to make your life easier
While not strictly necessary, this step will simplify the installation process. What we’ll do is rename the folder with the extracted files from node-v14.18.1-linux-x64 into something less cumbersome like node, for example. Here’s the command:
mv node-v14.18.1-linux-x64 node
4. Install Node.js’s and npm’s binaries
The final three commands will create the required directory, copy the binaries in it, and create the necessary symbolic links:
/bin
cp node/bin/node
bin
ln -s ../node/lib/node_modules/npm/bin/npm-cli.js npm
5. Check whether the installation is successful
Once again, you can ask Linux which versions of Node.js and npm are installed on the server to confirm that everything is fine. The commands are:
In our case, the responses should be v14.18.1 and 6.14.15, respectively.
Starting Node.js Apps
Having installed Node.js and npm on your server, you’re probably wondering how to start an application with them. How you’re going to go about it depends on the app itself.
Using npm
If you need to start a production-ready app with a valid package.json file, you can use the npm package manager. The command is:
nohup npm start –production &
Using Node
If your app doesn’t have a package.json file, you’ll need to use Node.js itself. You can do it with the following command.
nohup node [your app’s name].js &
Note that if you choose to run an app that does not have an included package.json file, you won’t be able to manage it with npm.
How to Stop an Application
To terminate a running application, we need to kill the process. Luckily, there is an easy command to stop any Node.js processes on the server:
Connect your Web Server with a Running Node.js App
Because of the various combinations of technologies а VPS can handle, there are many ways to connect your website to a Node.js app. Since Apache is one of the most common web servers, we will use this as the showcase platform.
We want to utilize the .htaccess file to perform the connection between the website and the Node.js app.
The .htaccess file is located in the document root folder (home/[your username]/public_html/). If you have a web hosting control panel installed on your server, you can get to it via the integrated file manager. Otherwise, your option is to access the server through SSH and open it with a text editor.
Here’s what you need to add to your .htaccess file:
DirectoryIndex disabled
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:XXX/ [P,L]
RewriteCond %
RewriteRule ^(.*)$ http://127.0.0.1:XXX/$1 [P,L]
Replace “XXX” with the port number of your Node.js application. Once done, remember to save the changes to your .htaccess file before exiting the editor.
Deploying a Node.js Application with SPanel
Those of you finding all these steps a bit intimidating will be happy to learn that if you have an SPanel VPS, you don’t need to go through any of them.
Node.js integration used to be one of the most heavily requested features by our SPanel clients, and we had no other choice but to implement it. SPanel servers have always supported Node.js, but right now, you don’t need to install it yourself or ask someone else to do it.
Node.js is set up and configured on all SPanel servers, and inside our proprietary management platform, you’ll find an easy-to-use tool that helps you launch applications in a matter of clicks. Here are all the steps:
1. Upload your application to a folder of your choice.
You can use your favorite FTP client or SPanel’s File Manager to upload the Node.js app from your local computer to the virtual server.
2. Deploy the application through SPanel’s NodeJS Manager.
SPanel’s NodeJS manager is available in the User Interface.
The Deploy a New App button opens a popup that lets you quickly launch your application. All you need to do is set the application URL, the port it will listen to, and the path to the app itself.
NOTE: You can only use ports between 3000 and 3500 for your Node.js applications.
Click Deploy to complete the process.
3. Manage your Node.js applications.
SPanel’s NodeJS Manager displays a list of all currently deployed Node.js applications. The Actions drop-down menus let you Stop, Restart, and Undeploy them one by one.
Conclusion
If you want to start a simple blog or a small online store, you probably don’t need Node.js. The JavaScript runtime environment is more suitable for more complex projects, usually led by people with more experience in the field.
With the correct commands, they should have no problems installing and using Node.js on a self-managed virtual server. However, even the biggest command-line wizards will appreciate the convenience of launching applications from an easy-to-use graphical user interface like SPanel’s NodeJS Manager.
Frequently Asked Questions
Must I pay to use Node.js?
Node.js is open-source and is free for use. Having said this, if you develop your Node.js project within a proprietary integrated development environment (IDE), there will likely be a fee involved as it is a commercial product.
What is NPM?
NPM is short for Node Package Manager. It serves as a repository for JavaScript packages that developers incorporate into their projects. It also gives web devs the capability to manage a specific version of each package.
Свой Node.js хостинг на VPS
По ходу изучения Node.js я создал много маленьких проектов. В дальнейшем мне понадобилось развернуть некоторые из них на сервере, чтобы иметь возможность развивать их в дальнейшем. Существующие хостинги Appfog и Heroku имеют ряд серьезных ограничений на бесплатных аккаунтах. На Appfog’е можно запускать одновременно не больше 2-х приложений, и бесплатная регистрация у них уже отключена. На Heroku можно создать только 5 приложений (без базы данных) без подтверждения аккаунта привязкой банковской карты. Платные аккаунты стоят очень дорого для меня (я ведь не зарабатываю на этих маленьких проектах): $20 долларов на Appfog, а heroku еще дороже. Коллеги порекомендовали попробовать хостинг на Digital Ocean — виртуальный сервер за $5 доларов в месяц, на котором можно легко настроить собственный хостинг node.js-проектов.
О том, как организовать такой хостинг, и будет идти речь в этой статье. Если по ходу руководства у вас возникнут проблемы, поищите их решение в конце статьи.
Создаем VPS
1. Регистрация на DigitalOcean
Первым делом регистрируемся на сайте DigitalOcean. Здесь мы купим VPS — виртуальный сервер. После удачной регистрации и входа в свою админку жмем на большую зеленую кнопку «Create» и нам предложат активировать свой аккаунт, внеся $5 долларов. Ниже на странице есть место для указания счастливого купона на $10, вводите OMGSSD10 или поищите свежий купон. Так как моя банковская карточка не подошла хостеру, я оплатил пейпалом и у меня на счету оказалось $15. Этого должно хватить на 3 месяца.
2. Создаем SSH-ключ
Доступ к удаленным серверам обычно делается по ssh. Это такая технология защищенных соединений. Зайти в нашу будущую VPS можно по паролю или по SSH-ключу. Я настоятельно рекомендую второй вариант, не придется все время вводить пароль. Также, SSH-ключ все равно нужно будет указать при создании нашего нового «дроплета» (словом «droplet» DigitalOcean называет виртуальный сервер).
Выполните следующие две команды в терминале, чтобы сгенерировать ssh-ключ:
И тут нас просят ввести имя файла ключа. Рекомендую использовать что-нибудь вроде id_rsa_digitalocean_dropletname , где имя дроплета — это либо имя домена, на который мы привяжем наш сервер, либо просто какое-нибудь осмысленное название. Парафразу можно оставить пустой, и так сойдет.
После этого будет создано два файла: ssh-ключ и public-ключ. Скопируем публичный ключ в буфер обмена модным способом:
Теперь зайдем в админку в digitaloceans в раздел SSH-keys и создадим там новый ключ, вставив его из буфера обмена.
3. Создаем дроплет
- В качестве hostname укажите доменное имя или что-нибудь осмысленное, это название роли не играет
- Размер выбирайте самый маленький, его потом можно будет увеличить из терминала
- Регион любой, я выбрал Амстердам
- Образ выберите на вкладке Applications, c названием «Dokku v0.2.3 on Ubuntu. » или похожим
- Укажите SSH-ключ, который мы создали на предыдущем шаге
Выбранный образ помимо операционной системы Ubuntu 14.04 содержит самое главное: Dokku. Это готовая система для хостинга node.js-проектов, очень похожая на Heroku. Использование образа с предустановленным Dokku избавит нас от необходимости устанавливать и настраивать систему для хостинга Node.js.
4. Настройка Дроплета и DNS
Теперь нужно настроить новосозданный сервер. Зайдите в браузере по IP-адресу дроплета и вы увидете экран настройки. Если такой страницы нет, смотрите что делать в конце статьи.
Здесь вы должны убедится, что поле «Public Key» заполнено. Если нет — укажите свой public key из недавно сгенерированного ключа. Однако практика показала, что лучше вообще удалить такой дроплет и создать новый, правильно указав SSH-ключ.
Если у вас нет доменного имени, то оставьте все, как есть, жмите «Finish setup» и переходите к следующему пункту. Ваше приложение будет доступно примерно так: «19.19.197.19:46667», по IP адресу и номеру порта. Если вас это не устраивает — срочно купите доменное имя. В любом случае, настроить доменное имя можно будет позже, о чем я расскажу в конце.
Если вы укажете доменное имя, у вас будет возможность настроить доступ к приложениям через поддомены. Например, если ваше доменное имя mydomain.com , тогда ваше приложение будет доступно по адресу app.mydomain.com . Также есть возможность привязать приложение на главный домен, но об это я в данной статье не расскажу.
Укажите в поле Hostname ваше доменное имя и поставьте галочку «Use virtualhost naming for apps». Теперь идите в панель управления вашим доменным именем и впишите две новые настройки примерно так:
Точный синтаксис уточните у себя в админке доменного имени или у домен-провайдера.
Теперь возвращайтесь на страницу настройки дроплета и жмите «Finish setup».
5. Настраиваем использование SSH
Давайте попробуем соединиться с нашим новым сервером. Чтобы получить доступ дроплету через SSH-ключ, нужно еще одно маленькое действие. Откройте терминал и передите в папку с ssh-ключами:
Если у вас еще нет файла «config» в этой папке (проверка — $ ls ), то его необходимо создать:
Теперь открываем config( $ open config ) и записываем в него следующие данные:
Где в первой строчке IP адрес или доменное имя, на второй строчке — имя созданного ssh-ключа для этого дроплета.
Где после «@» надо указать или доменное имя, или IP.
Если вы пропустили создание SSH-ключа, войти можно по паролю, который пришел к вам на почту. Для этого выполните ту же команду:
и на вопрос о продолжении соединения напишите «yes». После этого введите пароль.
Если вы увидели приветственный экран, значит все хорошо. Закроем соединение командой exit и перейдем к следующему пункту.
Деплоим приложение
Сервер готов, теперь пришла очередь развернуть тестовое приложение и проверить его работу.
1. Подготавливаем проект
Возьмите простой проект, типа Hello, world, без mongodb и прочего. Проверьте, что в проекте есть самое главное: «package.json», «Procfile» и какой-нибудь «app.js». «Package.json» должен выглядеть примерно так:
Содержание файла package.json важно, так как по нему dokku будет устанавливать модули для приложения. А Procfile должен выглядеть так:
Инициализируем в папке проекта репозиторий (если его не было), добавляем все файлы и коммитим:
Теперь наш проект готов к разворачиванию на сервере.
2. Заливаем и запускаем проект
Деплоить приложение будем с помощью команды git push . И для этого добавим ссылку на удаленный репозиторий нашего дроплета:
Если у нас было доменное имя для дроплета, то пишем его после «dokku@», иначе — указываем IP. После двоеточия мы указываем имя приложения. Этот индификатор будет использоваться внутри dokku.
Теперь вызываем команду push :
И начинается загрузка приложения, установка модулей. В конце на экране покажется url, по которому можно запустить проект. Это будет ссылка вида 192.88.67.168:46567 или app1.mydomain.com, в зависимости от настроек dokku.
По идее проект должен быть запущен после этого. Но если нет, то заходим в по ssh в наш дроплет и выполняем две команды
Запускаем в браузере ссылку, полученную ранее, и радуемся!
Проблемы и их устранение
Я сам разбирался с настройкой такого хостинга более суток, и набил несколько шишек. И чтобы вы могли съэкономить свое время, привожу здесь несколько возможных проблем и пути их решения.
1. Мою банковскую карточку не приняли для оплаты
Они такие, да. Даже Visa Classic им не нравится. Оплатите через PayPal, это не трудно.
2. Создал дроплет, но по IP адресу нет страницы настройки dokku
- указать образ с Dokku
- нажмите кнопку «Rebuild from Image».
3. Не могу получить доступ к дроплету ни по паролю, ни по SSH
- Наверное, вы как-то пропустили шаг настройки dokku, или dokky создался не правильно.
- Проверьте, если доступна страница настройки dokku по IP адресу дроплета, то вернитесь к шагу 4 создания VPS.
- Если страницы настроек нет, тогда попробуйте сбросить пароль и повторить попытку доступа через терминал. Если даже в этом случае доступ по паролю будет неудачным, тогда переустановите дроплет, как описано в предыдущем пункте.
4. Я не знаю пароля от дроплета
Если у вас нет пароля, зайдите на страницу управления дроплетом, вкладка «Access» и сделайте reset пароля. Тогда на почту придет новый пароль.
5. Проект не запускается по указанной ссылке
Если настройки dokku верны, такая ситуация возможна, если приложение запустилось с ошибкой и было закрыто. Зайтиде по ssh в дроплет и проверьте логи:
Возможно, ошибка будет понятна. Или же вы забыли запустить ваш проект после push’а:
6. Я пропустил создание SSH, и теперь хочу сделать авторизацию по SSH-ключу
Я пытался создать новый дроплет без указания ssh-ключа на странице создания дроплета, но на странице настроек dokku все равно просят ввести паблик-ключ. После этого я принял некоторые действия, но все равно зайти по ssh-ключу у меня не вышло, только пароль. Так что я не знаю, как лучше действовать в данной ситуации. Возможно, ошибка происходила при команде копирования ssh ключа в дроплет. Гуглите. В крайнем случае создайте новый дроплет с самого начала, по уму, как в этом руководстве. Пример поиска.
7. Как добавить доменное имя к уже существующему дроплету
В дроплете зайти в папку dokku и открыть для редактирования HOSTNAME:
Нажать клавишу «i» и записать в файле «HOSTNAME» доменное имя вместо IP адреса; затем нажать Esc , кнопки :wq и Enter . Ура! Мы только что успешно использовали легендарный Vim!
Чтобы проекты запускались на поддоменах, нужно создать файл VHOST :
И записать в файле доменное имя таким же способом, как это было в предыдущем пункте. В противном случае проекты будут доступны через порт. Теперь надо перезалить проект, а перед этим удалить его из dokku: