gpt4 book ai didi

django - 使用 mod_wsgi 在 Apache 上部署多个 django 应用程序

转载 作者:行者123 更新时间:2023-12-03 11:47:13 44 4
gpt4 key购买 nike

我想在同一主机上部署两个不同的 django 应用程序:第一个对应 url/site1,第二个对应 url/site2。这是我的配置:

LoadModule wsgi_module 模块/mod_wsgi.so

WSGIScriptAlias/site1/var/www/py/site1/site1/wsgi.py
WSGIScriptAlias/site2/var/www/py/site2/site2/wsgi.py

WSGIPythonPath/var/www/py/site1:/var/www/py/site2

<目录“/var/www/py/site1/site1”>
<文件 wsgi.py>
订单拒绝,允许
允许所有人



<目录“/var/www/py/site2/site2”>
<文件 wsgi.py>
订单拒绝,允许
允许所有人



这也是两个应用程序的 wsgi.py 文件

导入操作系统
导入系统

路径 = '/var/www/py/site1'
如果路径不在 sys.path 中:
sys.path.append(路径)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "site1.settings")
从 django.core.wsgi 导入 get_wsgi_application
应用程序 = get_wsgi_application()

现在,这是我的问题。当我访问我的服务器时,假设 http://app1.sites.gr/site1它有时会加载site1,有时会加载site2 !!!当我访问 http://app1.sites.gr/site2 时也是如此... 有时我会得到 site1 的欢迎页面,有时我会得到 site2 的欢迎页面!我正在按 F5 并获得不同的欢迎页面。我已经检查了前几个小时的所有内容,没有发现任何奇怪的东西......

请在我发疯之前告诉我可能是什么问题......

谢谢 !

最佳答案

这是 Django 1.4 生成的 wsgi.py 文件的问题。如果尝试在同一进程中托管两个不同的 Django 实例,即使在单独的子解释器中,它也不起作用。

改变:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "site1.settings")

到:
os.environ["DJANGO_SETTINGS_MODULE"] = "site1.settings"

或者更好的是仍然使用守护进程模式并将每个委托(delegate)在不同的守护进程组中运行。

也就是说,而不是:
WSGIScriptAlias /site1 /var/www/py/site1/site1/wsgi.py
WSGIScriptAlias /site2 /var/www/py/site2/site2/wsgi.py

WSGIPythonPath /var/www/py/site1:/var/www/py/site2

采用:
WSGIDaemonProcess site1 python-path=/var/www/py/site1
WSGIScriptAlias /site1 /var/www/py/site1/site1/wsgi.py process-group=site1 application-group=%{GLOBAL}

WSGIDaemonProcess site2 python-path=/var/www/py/site2
WSGIScriptAlias /site2 /var/www/py/site1/site2/wsgi.py process-group=site2 application-group=%{GLOBAL}

更新

请注意,现在有一篇关于此和其他原因的完整博客文章。
  • http://blog.dscpl.com.au/2012/10/requests-running-in-wrong-django.html
  • 关于django - 使用 mod_wsgi 在 Apache 上部署多个 django 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11505576/

    44 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com