Nginx proxy for nodejs simple cfg. Запуск проекта на node js

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

Прописываем сайте себе в хосты и профит.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.