Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Web
  • » Вопрос по wsgi и кэшированию кода [RSS Feed]

#1 Окт. 16, 2012 14:33:03

surfer111
Зарегистрирован: 2012-10-16
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по wsgi и кэшированию кода

У меня есть небольшой проект на django, который я развернул при помощи связки apache2 + nginx + mod_wsgi. Апач стоит как бэкенд, nginx как фронтенд. В документации говорится, что wsgi считывает python-код с диска при первом обращении, а затем при поступлении запросов, использует код из кэша. И при работе в режиме “embedded mode”, если мы меняем код, необходимо перезугрузить apache, чтобы кэш обновился и пользователь увидел изменения.
Дело в том, что когда я меняю код, я сразу вижу изменения на сайте, даже не перезагружая apache. Значит ли это, что по какой-то причине код не кэшируется, а считывается каждый раз с диска? Как это можно проверить?

Мой файл с настройками виртуального хоста:

<VirtualHost 127.0.0.1:81>        
        ServerName domain.ru
        ServerAlias www.domain.ru
        ServerAdmin webmaster@domain.ru
        DocumentRoot /path/to/project/root/public
        RewriteEngine On
        RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
        RewriteRule ^/(.*)$ /index.py/$1 [L,QSA,PT]
        <Directory /path/to/project/root/public>
                AllowOverride All
                Order deny,allow
                Allow from all
        </Directory>
        WSGIScriptAlias /index.py /path/to/project/root/wsgi.py
        <Directory /path/to/project/root>
                <Files wsgi.py>
                        Order deny,allow
                        Allow from all                        
                </Files>
        </Directory>
</VirtualHost>

P.S. В конфигурации apache параметр MaxRequestsPerChild равен 0

Отредактировано surfer111 (Окт. 16, 2012 15:51:56)

Офлайн

#2 Окт. 16, 2012 18:45:26

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Вопрос по wsgi и кэшированию кода

При изменении приложения, запущенного под mod_wsgi в daemon mode автоматический рестарт делает только процесс, обслуживающий приложение.
Если приложение запущено (“закешировано”), повторных обращений к диску нет.



Офлайн

#3 Окт. 16, 2012 18:52:12

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Вопрос по wsgi и кэшированию кода

Кстати, было бы неплохо для вашего виртуального хоста прописать директивы WSGIDaemonProcess и WSGIProcessGroup, если они отличаются таковых в конфиг-файле сервера.

Чтобы убедиться, что все работает так, как вам нужно, просто измените настройку логгирования Апача.
Детализируйте уровень логов до
LogLevel info

В результате получите информацию о старте демона и перезагрузке вашего приложения (при его обновлении).

ЗЫ
Не забудьте только потом вернуть настройку LogLevel обратно :)



Офлайн

  • Начало
  • » Web
  • » Вопрос по wsgi и кэшированию кода[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version