несколько django проектов, mod_wsgi, единственный домен

У меня есть два отличных Django "проекты", которые я хочу работать на единственном домене с помощью mod_wsgi. С mod_python я полагаю, что был способ сделать это, где определенные пути URL будут отображены на неком проекте Django и других путях, отображенных на другом проекте, всех на уровне сервера.

Действительно ли возможно сделать это с mod_wsgi, и если так, как?

Вещи я рассмотрел: что входит в Apache виртуальное описание хоста, что входит в application.wsgi файлы, и т.д. Но я не выяснил точно, как сделать это.

Спасибо!

12
задан DavidG 12 May 2010 в 18:16
поделиться

2 ответа

Это не должно быть сложно. Это просто вопрос установки директивы WSGIScriptAlias - вам понадобится две таких директивы, по одной для каждого пути, каждая из которых указывает на отдельный файл .wsgi, содержащий настройки вашего проекта.

8
ответ дан 2 December 2019 в 20:39
поделиться

Я также работаю с Apache и запускаю несколько проектов Django в одном домене. Вам нужно сделать только две вещи:

  1. Изменить файлы виртуального хоста

    Поскольку я использую Debian, у меня есть один файл vhost для каждого домена, который я размещаю. В вашем файле vhost должно быть несколько разделов vhost. По одному на каждый проект. Внутри этих разделов вы можете определить WSGIScriptAlias.

      
     ... 
    WSGIScriptAlias ​​/ /path/to/project1.wsgi
     ... 
      { {1}} 
      
     ... 
    WSGIScriptAlias ​​/ /path/to/project2.wsgi
     ...
      
     

    Конечно, вы должны добавить всю остальную необходимую информацию. У проектов 1 и 2 определенно будут разные поддомены. Например, project1.yourdomain.com и project2.yourdomain.com .

  2. Записывайте свои файлы * .wsgi

    Есть много способов записать и сохранить файлы * .wsgi. Я не знаю лучших практик. В моем случае я храню их в папке своего проекта.

    Это пример:

     import os 
    import sys 
    os.environ ['DJANGO_SETTINGS_MODULE'] = 'settings' 
    sys.path.append ('/ путь / к / вашему / проекту ') 
    import django.core.handlers.wsgi 
    application = django.core.handlers.wsgi.WSGIHandler () 
     

    I' мы видели много других файлов * .wsgi с большим количеством «волшебства». Но это должно помочь вам начать. Вы можете найти множество примеров в Интернете.

Надеюсь, что это ответ на ваш вопрос. Не бойтесь задавать больше вопросов.

7
ответ дан 2 December 2019 в 20:39
поделиться
Другие вопросы по тегам:

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