Тонкая настройка Apache для работы с Django
Иногда на хостинге нет возможности поставить дополнительное программное обеспечение (nginx, mod_wsgi и т.п.), но есть возможность править конфигурационный файл сервера apache. Применительно для Django, без дополнительных настроек конфига это нам грозит повышенным расходом памяти для отдачи статики, и, в том числе, задержки при работе файловой системы на подгрузку дополнительных исполняемых файлов фреймворка Django.
Для того, чтобы избежать этих накладных расходов, мы можем воспользоваться директивами веб-сервера apache Alias. Это актуально для windows-хостингов, когда мы не можем делать символические ссылки в файловой системе.
К примеру, чтобы настроить отдачу статического контента и css мы можем добавить следующие опции в директиву VirtualHost
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
AliasMatch ^/([^/]*\.css) /path/to/my/application/static/css/$1 Alias /media/ /path/to/my/application/media/ Alias /static/ /path/to/my/application/static/ <Directory /path/to/my/application/static> Order deny,allow Allow from all </Directory> <Directory /path/to/my/application/media> Order deny,allow Allow from all </Directory> |
С помощью этой настройки мы заставляем апач напрямую работать со статикой, и так же это позволит нам не копировать папки (на линукс-хостинге можно, кончено, сделать символические ссылки) с изображениями из приложения джанго в коренвую директорию веб-сервера.