Я пытаюсь запустить два проекта Django одновременно.Я случайно использовал mod_wsgi и обнаружил, что сайт ведет себя странно.Возможно, был бы обходной путь, но я хотел бы знать, что мне не хватает и как решить проблему.
В конфигурации apache
# Setup the Python environment
# As root owns basically everything on a Amazon AMI and root
# cannot be used. Create a folder under /var/run/wsgi
# with the owner as ec2-user and group ec2-user.
WSGISocketPrefix /var/run/wsgi
# Call your daemon process a name
WSGIDaemonProcess pydaemon processes=1 threads=5
# Call your daemon process group a name
WSGIProcessGroup pydaemon
# Point to where the handler file is. This will be different
# If you are using some other framework.
WSGIScriptAlias /test /var/www/html/test/wsgi.py
WSGIScriptAlias /proto /var/www/html/proto/wsgi.py
После перезапуска Apache, еслиЯ подключаюсь к / proto, затем отображается сайт proto.Однако затем я подключаюсь к «/ test», не перезапуская Apache, прото-сайт все еще отображается, и я не могу получить доступ к тестовому сайту.
Теперь я перезагружаю Apache, на этот раз я иду к «/ test' первый.Тестовый сайт подходит!Однако, если я перейду к «/ proto», он по-прежнему показывает тестовый сайт, а не прото-сайт.
Что может сделать это?Я добавил SESSION_COOKIE_PATH по-разному для каждого приложения на всякий случай, но проблема все еще существует.
[ОБНОВЛЕНО]
Я также попытался, как указано ниже, дать разные имена групп приложений WSGI,но без удачи.
Alias /cuedit /var/local/test/wsgi.py
<Location /test>
SetHandler wsgi-script
Options +ExecCGI
WSGIApplicationGroup test
</Location>
Alias /proto /var/local/proto/wsgi.py
<Location /proto>
SetHandler wsgi-script
Options +ExecCGI
WSGIApplicationGroup proto
</Location>
[ОБНОВЛЕНО]
Я перешел из режима демона во встроенный режим.Я предполагаю, что проблема заключалась в том, что два экземпляра совместно использовали один и тот же процесс демона mod_wsgi, поэтому их пространство имен сталкивалось.
Я ожидал бы, что они должны обрабатываться правильно, но в режиме демона я не смог сделать это правильно.