Назад | Перейти на главную страницу

Django глобально устанавливает переменную среды

У меня проблема с настройкой Django на нашем сервере CentOS с помощью mod_python. Сайт «A» работает под управлением PHP (Codeigniter), а сайт «B» - под управлением Django. Наш сайт Django работает отлично.

Однако время от времени (может быть, 1 или 2 запроса из 10) сайт «A» выдает ошибку 404. При дальнейшем исследовании я обнаружил, что существует ряд переменных среды сервера, которые глобально устанавливаются Django. Например, если посмотреть на страницу phpinfo () на сайте A:

_ENV["DJANGO_SETTINGS_MODULE"]  mysite.settings
_ENV["REQUEST_URI"] /path/to/my/django/site/page

Поскольку все пути запроса настроены на URL-адреса моего сайта Django, Codeigniter отправляет ошибку 404.

Настройка в httpd.conf такова, что у нас есть теги местоположения, настроенные в директиве virtualhost.

Кто-нибудь может помочь?

Возможно, это не тот ответ, который вы хотите услышать, но все равно здесь :)

Если вы запустите свой сайт Django под mod_wsgi вместо того mod_python вы увидите несколько преимуществ:

  1. Под mod_wsgi ты можешь вбежать демон mode, то есть ваш сайт Django будет изолирован в отдельном процессе. Это означает, что переменные среды не будут установлены глобально в среде Apache (которые, как мне кажется, в вашем случае устанавливаются mod_python). Это также означает, что вы можете перезапустить свой сайт Django без перезапуска Apache.

  2. С участием mod_wsgi в демон В режиме у вас будет только один экземпляр интерпретатора Python, работающий в памяти, вместо одного экземпляра в каждом процессе Apache. Это огромная экономия памяти, оставляющая больше места для кеширования, больше процессов Apache и т. Д.

  3. mod_wsgi не только более стабильный, но и достаточный, чтобы я был одним из многих разработчиков Django, которые хлопают нас по лбу, когда мы видим, что кто-то все еще использует mod_python. Пример: твит от разработчика ядра Django Джейкоба Каплан-Мосса.

  4. В заключение, mod_wsgi работает быстрее и имеет отличную поддержку сообщества по сравнению с нулевой поддержкой и постоянными ошибками для mod_python.