Вопрос по settings, apache – «Структура сайтов» в одном экземпляре django

6

Я хочу обслуживать специализированные RSS-каналы на другом поддомене, чем на остальной части сайта.

Могу ли я использовать каркас сайтов для использования другого файла urls.py и settings.pywithin a single django instanceError: User Rate Limit Exceeded

Мне нужно настроить два файла urls.py, чтобы избежать дублирования содержимого. Я не хочу, чтобы основной сайт был доступен по адресу rss.example.com, и я не хочу, чтобы специализированные каналы были доступны на example.com.

Обслуживание их из одного экземпляра django было бы идеальным, потому что мы работаем на виртуальном хостинге с ограниченной памятью, и кажется, что такая трата открывать открытый экземпляр, который обслуживает только rss, - такая трата.

editЯ пришел к выводу, что несколько экземпляров с отдельными файлами urls.py было бы проще для меня ... но я нашел эту статью, описывающую, как это сделать, используя один экземпляр:

http://effbot.org/zone/django-multihost.htm

Solution: Django tupperware

В итоге я написал фреймворк для запуска нескольких копий сайта на одном экземпляре django.

Основная идея состоит в том, чтобы изменитьSITE_ID настройка на лету для каждого запроса и загрузка альтернативных настроек из базы данных. Это делается на основе домена и используетSITE_ID = 1Error: User Rate Limit Exceeded

Все настройки в файле settings.py действуют как значения по умолчанию, которые переопределяются настройками, хранящимися в базе данных для текущего сайта.

Это работает довольно хорошо :) и работает в производстве наhttp://rootbuzz.com

Error: User Rate Limit Exceeded Murat Çorlu
Error: User Rate Limit Exceeded Jiaaro
Error: User Rate Limit Exceeded Jiaaro
Error: User Rate Limit Exceeded Murat Çorlu
Error: User Rate Limit Exceeded Jiaaro

Ваш Ответ

2   ответа
3

Error: User Rate Limit ExceededError: User Rate Limit Exceeded

Error: User Rate Limit Exceededbitbucket.org/jiaaro/django-tupperware/src Jiaaro
10

settings.pysettings.py

urls.pyROOT_URLCONFsettings.py

Use apache + mod_wsgi and use the WSGIApplicationGroup and/or WSGIProcessGroup directives. I've never needed these before so can't be completely sure these will work the way you want, but regardless you can definitely use mod_wsgi in daemon mode to greatly improve your memory footprint.

You can play with Django middleware to deny/allow URLs based on the request hostname (see HttpRequest.get_host() in the Django docs). For that matter, even though it would be a slight performance hit, you can put a decorator on all your views that checks the incoming host.

Error: User Rate Limit Exceeded Jiaaro
Error: User Rate Limit Exceeded Jiaaro
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Jiaaro

Похожие вопросы