-
Думаю, кому-нибудь будет полезно знать, как запустить проект на Node.js.
Первым делом необходимо установить саму ноду, но об этом я писать не буду, это размусоленно на триллионах сайтов. А вот как поднять проект на русскоязычных сайтах, инфы маловато. Сам я искал инфу на ру сайтах, но в итоге все равно пришлось питаться инфой из-за бугра.
Задача состоит в следующем:
Запустить ноду.
Писать лог по ошибкам.
Если сайт падает, надо его поднять.
Ставим upstart
sudo apt-get install upstart
Предположим, у вас есть проект site.ru, и расположен он в каталоге
/var/www/nodejs/site/
Создаем файл /etc/init/site.conf
#site.conf description "node.js bin/www" author "username" start on startup stop on shutdown script export HOME="/root" echo $$ > /var/run/site.pid exec sudo -u username /usr/local/bin/node /var/www/nodejs/site/bin/www >> /var/log/site.sys.log 2>&1 end script pre-start script # Date format same as (new Date()).toISOString() for consistency echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /var/log/site.sys.log end script pre-stop script rm /var/run/site.pid echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /var/log/site.sys.log end script Далее открываем /ect/monit/monitrc check process site with pidfile "/var/run/site.pid" start program = "/sbin/start site" stop program = "/sbin/stop site" if failed port 3000 protocol HTTP request / with timeout 10 seconds then restart
Где порт 3000, впишите свой, по умолчанию нода запускается с портом 3000.
Чтобы избавиться от порта в site.ru:3000, правим конфиг nginx /etc/nginx/nginx.conf
server { server_name site.ru www.site.ru; listen 37.143.15.183; charset UTF-8; set $root_path /var/www/nodejs/site; location / { proxy_read_timeout 120s; proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ { proxy_pass http://37.143.15.183:81; proxy_redirect http://37.143.15.183:81/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } location @fallback { proxy_pass http://37.143.15.183:81; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } include /usr/local/ispmgr/etc/nginx.inc; }
Перезапускаем nginx
service nginx restart
Запускаем проект
start site monit -d 60 -c /etc/monit/monitrc
Открываем site.ru, и если все в порядке, увидите приветствие от Express.
ПС. более подробно можно почитать на забугорном сайте
http://howtonode.org/deploying-node-upstart-monit