Node.js

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

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

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

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

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

$ ssh username@servername.beget.com

Где username - логин, servername.beget.com - имя сервера, на котором располагается аккаунт. При подключении необходимо будет ввести пароль от аккаунта. Например:

denia@begetsupp:~$ ssh denia059@plasma.beget.com
The authenticity of host 'plasma.beget.com (5.101.156.71)' can't be established.
ECDSA key fingerprint is e2:fb:d8:7d:fc:12:8f:6e:c3:24:b5:ce:46:da:ff:76.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'quasar.beget.com,5.101.156.71' (ECDSA) to the list of known hosts.
denia059@plasma.beget.com's password:

 Welcome to LTD BeGet server 'plasma'
Last login: Wed Jul 22 03:26:57 2015 from 80.79.241.142
chruby: unknown Ruby: 1.9.3-p551
denia059@plasma:~ [0] $ 

После подключения нужно перейти в каталог сайта, в рассматриваемом примере имя каталога - nodejs:

denia059@plasma:~ [0] $ cd nodejs

Теперь требуется скачать дистрибутив NodeJS:

denia059@plasma:~/nodejs [0] $ wget https://nodejs.org/dist/v0.12.7/node-v0.12.7-linux-x64.tar.gz
--2015-08-18 00:02:04--  https://nodejs.org/dist/v0.12.7/node-v0.12.7-linux-x64.tar.gz
Resolving nodejs.org (nodejs.org)... 165.225.133.150
Connecting to nodejs.org (nodejs.org)|165.225.133.150|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10060524 (9,6M) [application/octet-stream]
Saving to: `node-v0.12.7-linux-x64.tar.gz'

100%[=============================================================================================================>] 10 060 524  2,68M/s   in 3,6s

2015-08-18 00:02:11 (2,68 MB/s) - `node-v0.12.7-linux-x64.tar.gz' saved [10060524/10060524]

На текущий момент последняя версия 0.12.7, скачать последнюю версию можно с официального сайта

После чего распаковать скачанный архив:

denia059@plasma:~/nodejs [0] $ tar xvzf node-v0.12.7-linux-x64.tar.gz

И удалить архив с дитрибутивом:

denia059@plasma:~/nodejs [0] $ rm node-v0.12.7-linux-x64.tar.gz

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

denia059@plasma:~/nodejs [0] $ mkdir -p HelloNodejs/tmp

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

denia059@plasma:~/nodejs [0] $ mkdir public_html tmp

Для корректной отдачи статического контента средствами Nginx создается симлинк на public_html:

denia059@plasma:~/nodejs [0] $ ln -s public_html public

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

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

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

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

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

PassengerNodejs /home/d/denia059/nodejs/node-v0.12.7-linux-x64/bin/node
PassengerAppRoot /home/d/denia059/nodejs/HelloNodejs
PassengerAppType node
PassengerStartupFile app.js

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

denia059@plasma:~/nodejs [0] $ touch tmp/restart.txt

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

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

denia059@plasma:~/nodejs [0] $ ps aux | grep Passenger
denia059  8373  0.0  0.0   9572  2100 pts/10   SN+  00:30   0:00 grep Passenger
498357343 33078 0.0  0.0 670220 21292 ?        Sl   00:26   0:00 Passenger NodeApp: /home/d/denia059/nodejs/HelloNodejs
498357343 35664 0.0  0.0 670220 21220 ?        Sl   00:19   0:00 Passenger NodeApp: /home/d/denia059/nodejs/HelloNodejs

В листинге процессов видно, что процесс выполняет непосредственно модуль апача Passenger.





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