Установка Рынды в «боевом» режиме

Для установки в боевом режиме под веб сервером Apache потребуется установить модуль mod-wsgi. В ОС Debian это можно сделать командой:

$ sudo aptitude install libapache2-mod-wsgi

Примечание

Стоит заметить, что если у вас стоит модуль mpm-itk, то он может быть причиной того, что модуль mod-wsgi не будет работать.

Настройки VirtualHost

Запуск в режиме демона является рекомендуемым методом запуска mod_wsgi на не Windows платформах. Чтобы создать процесс, в описание VirtualHost потребуется добавить директивы WSGIDaemonProcess, WSGIProcessGroup и WSGIScriptAlias.

  • WSGIDaemonProcess - основная директива настройки демона, её формат:

    WSGIDaemonProcess имя_процесса processes= threads= python-path=
    

где:

python-path — это путь к библиотекам виртуального окружения сайта в формате:
/path/to/mysite.com:/path/to/your/venv/lib/python2.X/site-packages

processes — определяет количество процессов демона, которые должны быть запущены
в этой группе процессов, определенной директивой WSGIProcessGroup. По умолчанию
(когда кол-во не определено) будет запущен только один процесс.

threads — определяет кол-во потоков для обработки запросов по каждому из процессов
демона внутри группы процессов, определенных директивой WSGIProcessGroup.
  • WSGIProcessGroup - группирует процессы демона:

    WSGIProcessGroup имя_процесса
    
  • WSGIScriptAlias - местоположение скрипта, обрабатывающего запросы к приложению:

    WSGIScriptAlias site_root /path/to/mysite.com/wsgi.py
    

Пример:

<Directory /path/to/mysite.com/mysite/Rynda/scripts>
<Files wsgi.py>
        Require all granted
</Files>
</Directory>

Примечание

если вы используете Apache версии 2.4 или старее, замените одну строку Require all granted на

Order deny, allow
Allow from all

Настройки обработки статических файлов

В отличие от сайтов, написанных на php, Django не обрабатывает статические файлы (изображения, таблицы стилей, скрипты). Их обработка должна настраиваться отдельно.

Для сервера Apache:

Аlias /static/ /path/to/mysite.com/static

Для сервера nginx:

location /static {alias /path/to/mysite.com/static; }

Примечание

рекомендуется использовать nginx в качестве backend’a для раздачи статических файлов, так как он делает это более эффективно, нежели Apache

Теперь запустим команду по сбору статических файлов, которая в автоматическом режиме разместит все статические файлы в правильном месте:

./manage.py collectstatic

Пример описания виртуального хоста для Apache

<Directory /path/to/my/site/www/demo.openrynda.com/Rynda/rynda/Rynda>
    <Files wsgi.py>
        Order allow,deny
        Allow from all
    </Files>
</Directory>

<VirtualHost 1.2.3.4:81 >
        ServerName demo.openrynda.com
        DocumentRoot /path/to/my/site/www/demo.openrynda.com
        WSGIDaemonProcess openrynda processes=5 threads=1 python-path=/path/to/my/site/www/demo.openrynda.com/Rynda:/path/to/my/site/www/demo.openrynda.com/rynda/lib/python2.7/site-packages:/path/to/my/site/www/demo.openrynda.com/rynda/lib/python2.7/
        WSGIProcessGroup openrynda
        WSGIScriptAlias / /path/to/my/site/www/demo.openrynda.com/rynda/Rynda/wsgi.py

        Аlias /static/ /path/to/my/site/www/demo.openrynda.com/static  # расположение статики (при необходимости измените)
        ServerAlias www.demo.openrynda.com
</VirtualHost>