Я пытаюсь запустить два проекта 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', появится прото-сайт. Однако, затем я подключаюсь к '/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>
[ОБНОВЛЕНО]
Я перешел из режима демона во встроенный режим. Я предполагаю, что проблема заключалась в том, что два экземпляра разделяли один и тот же процесс daemon mod_wsgi, чтобы их пространство имен сталкивалось.
Я бы ожидал, что их нужно обработать правильно, но в режиме демона я не мог понять это правильно.