Ответ 1
Это не должно быть сложно. Это просто вопрос установки директивы WSGIScriptAlias
- вам понадобятся два из них: по одному для каждого пути, каждый из которых указывает на отдельный файл .wsgi
, который содержит ваши настройки проекта.
У меня есть два разных Django-проекта, которые я хочу запустить в одном домене с помощью mod_wsgi. С mod_python я считаю, что есть способ сделать это, когда определенные пути URL будут сопоставлены с одним проектом Django и другими путями, сопоставленными с другим проектом, все на уровне сервера.
Можно ли это сделать с помощью mod_wsgi, и если да, то как?
Вещи, которые я рассмотрел: что входит в описание виртуального хоста Apache, что входит в файлы application.wsgi и т.д. Но я не понял, как это сделать.
Спасибо!
Это не должно быть сложно. Это просто вопрос установки директивы WSGIScriptAlias
- вам понадобятся два из них: по одному для каждого пути, каждый из которых указывает на отдельный файл .wsgi
, который содержит ваши настройки проекта.
Я также работаю с Apache, и я запускаю несколько проектов Django с одним доменом. Вам нужно всего две вещи:
Измените файлы виртуального хоста
Поскольку я использую Debian, у меня есть один файл vhost для каждого домена, на котором я размещаю. В вашем файле vhost вам должно быть несколько разделов vhost. Один для каждого проекта. Внутри этих разделов вы можете определить WSGIScriptAlias.
<VirtualHost *:80>
...
WSGIScriptAlias / /path/to/project1.wsgi
...
</VirtualHost>
<VirtualHost *:80>
...
WSGIScriptAlias / /path/to/project2.wsgi
...
</VirtualHost>
Конечно, вы должны добавить всю другую необходимую информацию. Проекты 1 и 2, безусловно, будут иметь разные поддомены. Например project1.yourdomain.com и project2.yourdomain.com.
Напишите ваши файлы *.wsgi
Существует множество способов записи и хранения файлов *.wsgi. Я не знаю никаких лучших практик. В моем случае я храню их в папке проекта.
Это пример:
import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
sys.path.append('/path/to/your/project')
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Я видел много других файлов *.wsgi с большим количеством "магии". Но это должно заставить вас начать. Вы можете найти множество примеров по всему Интернету.
Надеюсь, что ответит на ваш вопрос. Не бойтесь задавать больше вопросов.