С недавних пор на виртуальные сервера от 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
nano 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/');
module.exports = app;
Запустите сохраненный файл server.js следующей командой
pm2 start server.js
На экране консоли должен появиться подобный вывод
Для тестирования работоспособности стека MEAN введите в браузер адрес http://ip-сервера:3000
Чтобы убедиться, что стек работает корректно, обновите страницу. Если количество Page Hits меняется при каждом обновлении, то стек MEAN (в частности веб-сервер) работает корректно, можете перейти к деплою JavaScript-приложения на вашем виртуальном сервере.