Node.js

В статье будет рассмотрена настройка Node.JS.

Внимание! Если вы хотите запустить веб-приложение, но еще не создали сайт - сначала необходимо создать сайт и прикрепить к нему домен в разделе Сайты, а также прикрепить к нему доменное имя. Лучше всего имя сайта указывать аналогично желаемому доменному имени - в противном случае в будущем могут возникнуть трудности с пониманием файловой структуры.
Если у вас еще нет доменного имени, его можно добавить или зарегистрировать в разделе Домены.
После того, как сайт создан и к нему прикреплён домен, направленный на наши NS сервера, можно приступать к настройке.

Сначала необходимо подключится к аккаунту по протоколу SSH.

Если Вы пользуетесь OS Windows, то, скорее всего, Вам подойдет SSH-клиент PuTTy (статью по настройке можно прочитать здесь). Когда настроите, можно переходить на шаг 2.

Если Вы пользуетесь OS Linux или OS X, подойдет обычный терминал, который присутствует во всех Unix-подобных операционных системах. Подключиться можно следующей командой:

$ ssh username@username.beget.tech

Где username - логин, username.beget.tech - адрес сервера (посмотреть его можно в блоке Техническая информация на главной странице панели управления).

Также Вы можете воспользоваться терминалом в панели управления

Установка Node.js производится в каталог .local Вашей учётной записи:

valkeru@oscar2:~ [0] $ mkdir -p .local
valkeru@oscar2:~ [0] $ cd .local

Загрузить Node.js можно на сайте разработчиков.
! Обратите внимание: загружать нужно 64-разрядную версию, запуск исполняемых файлов для 32-битной архитектуры на наших серверах запрещён!
Загрузим дистрибутив и распакуем его:

valkeru@oscar2:~/.local [0] $ wget https://nodejs.org/dist/v8.1.2/node-v8.1.2-linux-x64.tar.xz
--2017-06-26 02:46:01--  https://nodejs.org/dist/v8.1.2/node-v8.1.2-linux-x64.tar.xz
Resolving nodejs.org... 104.20.23.46, 104.20.22.46, 2400:cb00:2048:1::6814:172e, ...
Connecting to nodejs.org|104.20.23.46|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11314172 (11M) [application/x-xz]
Saving to: ‘node-v8.1.2-linux-x64.tar.xz’

node-v8.1.2-linux-x64.tar.xz      100%[==========================>]  10,79M  7,18MB/s    in 1,5s

2017-06-26 02:46:04 (7,18 MB/s) - ‘node-v8.1.2-linux-x64.tar.xz’ saved [11314172/11314172]

valkeru@oscar2:~/.local [0] $ tar xJf node-v8.1.2-linux-x64.tar.xz --strip 1
valkeru@oscar2:~/.local [0] $

Удалите загруженный дистрибутив:

valkeru@oscar2:~/.local [0] $ rm node-v8.1.2-linux-x64.tar.xz
valkeru@oscar2:~/.local [0] $

! Поскольку сайты на учётных записях изолированы, для запуска Node.js из окружения веб-сервера потребуется открыть общий доступ к каталогу ~/.local.
Инструкция по предоставлению общего доступа приведена в этой статье.

Теперь нужно перейти в каталог сайта, в рассматриваемом примере имя каталога - node:

valkeru@oscar2:~ [0] $ cd ~/node

Необходимо создать каталог для проекта, в рассматриваемом примере имя каталога - HelloWorld:

valkeru@oscar2:~/node [0] $ mkdir -p HelloWorld/tmp
valkeru@oscar2:~/node [0] $

Также нужно создать каталог tmp:

valkeru@oscar2:~/node [0] $ mkdir tmp
valkeru@oscar2:~/node [0] $

Для корректной отдачи статического контента средствами Nginx создается ссылка public, указывающая на public_html:

valkeru@oscar2:~/node [0] $ ln -s public_html public

С помощью любого текстового редактора (например, nano или vim) необходимо создать файл app.js в каталоге проекта HelloWorld со следующим содержимым:

var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World!');
});
server.listen(3000);

Затем нужно создать файл .htaccess. В общем виде его содержимое выглядит следующим образом:

PassengerNodejs /home/первая буква логина/логин/.local/bin/node
PassengerAppRoot /home/первая буква логина/логин/папка сайта/название_проекта
PassengerAppType node
PassengerStartupFile app.js

В рассматриваемом примере файл .htaccess выглядит так:

PassengerNodejs /home/v/valkeru/.local/bin/node
PassengerAppRoot /home/v/valkeru/node/HelloWorld
PassengerAppType node
PassengerStartupFile app.js

Для того, чтобы Passenger перечитал конфиг, необходимо создать файл tmp/restart.txt:

valkeru@oscar2:~/node [0] $ touch tmp/restart.txt
valkeru@oscar2:~/node [0] $

Для проверки работоспособности откройте сайт в браузере:

Также для проверки работоспособности можно выполнить следующую команду:

valkeru@oscar2:~/node [0] $ ps aux | grep Passenger
659085    4148  0.1  0.0 878828 29796 ?        Sl   02:55   0:00 Passenger NodeApp: /home/v/valkeru/node/HelloWorld
valkeru   7365  0.0  0.0   7496  2144 pts/19   SN+  02:56   0:00 grep Passenger

В листинге процессов присутствует модуль Apache Passenger.





Удачной работы! Если возникнут вопросы - напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел "Помощь и поддержка".