6

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

Я хочу обслуживать специализированные 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

Oct 10, 2014, 12:36 AMот

Error: User Rate Limit Exceeded

Oct 13, 2014, 3:22 PMот

Error: User Rate Limit Exceeded

Oct 13, 2014, 7:20 PMот

Error: User Rate Limit Exceeded

Oct 13, 2014, 7:16 PMот

Error: User Rate Limit Exceeded

Oct 13, 2014, 4:06 PMот

2ответа

10

Error: User Rate Limit Exceededsettings.pyError: User Rate Limit Exceededsettings.pyError: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceededurls.pyError: User Rate Limit ExceededROOT_URLCONFError: User Rate Limit Exceededsettings.pyError: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

  1. 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.

  2. 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.

3

Error: User Rate Limit ExceededError: User Rate Limit Exceeded

RelatedQuestions