Деплой Nginx + Gunicorn + Django

На сервере устанавливаем nginx и runit.

sudo apt-get install nginx runit
sudo apt-get install python-setuptools
pip install virtualenv

Создаем директорию для проекта

sudo mkdir /var/www
cd /var/www
sudo mkdir mysite
sudo chown user:user mysite
cd mysite

Создаем virtualenv и проект на django

virtualenv --no-site-packages -p python3 env
source env/bin/activate
pip install django
django-admin startproject mysite

Запускаем сайт на nginx со следующими настройками и создаем  директорию logs

mkdir logs
server {

    listen 80;
    server_name mysite.ru;
    access_log  /var/www/mysite/logs/access.log;
    error_log   /var/www/mysite/logs/error.log;

    root /var/www/mysite/mysite;

    # статические файлы обрабатываются напрямую
    location ~* ^.+\.(svg|bmp|jpg|jpeg|pjpeg|gif|ico|png|css|doc|txt|js|docx|rtf|ppt|pdf|swf|zip|rar|gz|ttf|woff|woff2)$ {
        expires        1m;
        log_not_found    on;
    }

    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

       	proxy_send_timeout 120; # время ожидания при передаче запроса
       	proxy_read_timeout 120; # время ожидания при чтении ответа
    }
}

Далее устанавливаем и настраиваем запуск gunicorn на порт 8001.

pip install gunicorn
cd /etc/sv
sudo mkdir mysite
cd mysite

Добавляем в папке файл run

#!/bin/sh

WWW=/var/www/mysite
GUNICORN=$WWW/env/bin/gunicorn
ROOT=$WWW/mysite
PID=/var/run/mysite.pid
LOGS=$WWW/logs

APP=mysite.wsgi:application

if [ -f $PID ]; then rm $PID; fi

cd $ROOT
exec $GUNICORN $APP --pid=$PID --error-logfile $LOGS/gunicorn-error.log

gunicorn.conf.py

Создаем файл в папке проекта /var/www/mysite/mysite/gunicorn.conf.py с текстом

bind = "127.0.0.1:8001"

Создаем линк в папку service и запускаем

sudo ln -s /etc/sv/mysite /etc/service
sudo sv start mysite

Пробуем зайти на наш проект. Если все сделано правильно, то должны увидеть следующее

2016-08-30_14-04-16

 

 

 

Оставить комментарий

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