Очень простой способ заставить работать django на сервере

Для понятности, давайте определимся:

  • # домашняя директория — /home/vasia/
  • # директория с сайтами — /home/vasia/sites/
  • # папка сайта — /home/vasia/sites/mysite.com/
  • # папка проекта django — /home/vasia/sites/mysite.com/mysite

Установим необходимый софт

apt-get install nginx uwsgi uwsgi-plugin-python

Создадим nginx конфиг для нашего сайта

server {
    root /home/vasia/sites/first;
    index index.html index.htm;
    access_log /home/vasia/sites/logs/mysite_access.log;
    error_log /home/vasia/sites/logs/mysite_errors.log;

    server_name mysite.com;

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8101;
    }

    location /static/ {
        root /home/vasia/sites/mysite.com;
    }

    location /media/ {
        root /home/vasia/sites/mysite.com;
    }
}

Файл с конфигурацией uwsgi

В папке django-проекта создадим файл uwsgi.mysite.ini со следующим содержимым:

[uwsgi]
socket = 127.0.0.1:8101
master = true
module = django_wsgi
pidfile = first.pid
pythonpath = /home/mishko/sites/mysite.com
virtualenv = .env
plugins = python27
daemonize = /home/vasya/sites/logs/mysite_python.log

Там же создадим файл django_wsgi.py со следующим содержанием:

import os, sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

Запускаем сервисы

Вы будете удивлены, но все готово. Остались мелочи

# start nginx
service nginx start
# start uwsgi
uwsgi --ini uwsgi.mysite.ini

Очень простой способ заставить работать django на сервере: 2 комментария

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

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