Обслуживание 2 сайтов Django с одинаковым кодом - PullRequest
1 голос
/ 05 мая 2011

Я обслуживаю сайт django с apache и wsgi, используя конфигурацию apache следующим образом:

  Alias /media/ /var/www/media/
  Alias /files/ /var/www/files/
  WSGIDaemonProcess fc processes=5 threads=5 display-name=%{GLOBAL}
  WSGIProcessGroup fc
  WSGIScriptAlias / /home/path/to/django.wsgi

Приложение обслуживается в корневом каталоге хоста.Теперь я хотел бы изменить это так, чтобы я мог обслужить его в http://host/app1 и еще один, с другой настройкой django, в http://host/app2

Как я могу изменить конфигурацию, чтобы сделать это?

Спасибо

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Вам понадобится набор WSGI* директив для каждого проекта. Этот второй параметр WSGIScriptAlias сообщает Apache, где проект находится в дереве; WSGI удаляет этот префикс перед передачей URL-адреса в преобразователь URL-адресов Django.

Например:

WSGIDaemonProcess app1 threads=15
WSGIScriptAlias /app1 /var/www/django_project1/django.wsgi
<Location /app1>
WSGIProcessGroup app1
</Location>

WSGIDaemonProcess app2 threads=15
WSGIScriptAlias /app2 /var/www/django_project2/django.wsgi
<Location /app2>
WSGIProcessGroup app2
</Location>

Я не пытался оптимизировать это; Там может быть лучший способ. Но это должно заставить вас бежать.

0 голосов
/ 05 мая 2011

Вы можете попытаться создать другую папку со вторым settings.py и создать символические ссылки на ваши приложения, локали, статические, шаблоны, urls.py и т. Д.

У меня есть несколько проектов, использующих одни и те же приложения, поэтому я поместил их в отдельную папку, которую я добавил в путь к Python. Я также использую одну и ту же базу данных для обоих сайтов, но у меня разные SITE_ID, поэтому я могу указать, на каком сайте я хочу иметь свой контент. Таким образом, у меня могут быть совершенно разные сайты, использующие разные шаблоны, стили и изображения с одинаковым содержанием. Если JS-скрипты одинаковы на обоих сайтах, я создаю символическую ссылку.

...