Обслуживание 2 сайтов Django с одинаковым кодом

Я обслуживаю сайт 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 ответа

Вам понадобится набор 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>

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

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

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

Другие вопросы по тегам