Nginx proxy for nodejs simple cfg.
nano /etc/nginx/conf.d/node.conf
server {
# порта на котором будет слушать
listen 80;
location / {
# IP и порт, на которых висит запущенный сервис node.js
proxy_pass https://127.0.0.1:8888;
proxy_set_header Host $host;
}
location ^~ /files/ {
# Путь к корневому каталогу со статическими файлами
root /var/hosting/files
}
}Автоматический запуск проекта на nodejs
Задачи:
1. Node start
2. Log ошибок
3. Авто поднятие сайта при его падении
Ставим ноду(ну мало ли)
curl -sL https://deb.nodesource.com/setup_6.x | bash - apt-ge install nodejs npm node-express-generator-y
Симлинким для совместимости
ln -s /usr/bin/nodejs /usr/bin/node
Ставим upstart и monit
apt-get install upstart monit -y
Далее. Создаем файл для автозапуска
nano /init/site.conf
Допустим что наш сайт находится в директории
/var/www/nodejs/site/
Содержимое файла
#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
Редактируем файл monita
nano /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.
Далее редактим конфиг nginx
nano /etc/nginx/conf.d/node.conf
Конфиг nginx
server {
server_name site.ru www.site.ru;
listen 80;
charset UTF-8;
set $root_path /var/www/nodejs/site;
location / {
proxy_read_timeout 120s;
proxy_pass https://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 https://37.143.15.183:81;
proxy_redirect https://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 https://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;
}
Проверяем конфиг
nginx -t
Запускаем проект
start site monit -d 60 -c /etc/monit/monitrc
Прописываем сайте себе в хосты и профит.