【问题标题】:Hosting Multiple VirtualHost Instances托管多个 VirtualHost 实例
【发布时间】:2012-02-24 15:03:53
【问题描述】:

我的 django 项目包含很多应用程序、库和中间件。我想在不同的虚拟主机上运行这个项目的不同配置(因为不同的用例和需求,例如:一种用于用户,一种用于 M2M api 等)。从this 问题我了解到,只要我有单独的 wsgi 引导文件,托管它应该不是问题,但我不明白为什么以下行:

os.environ['DJANGO_SETTINGS_MODULE'] = 'site1.settings'

不会导致同时部署出错。如果我有几个具有自己的 wsgi 配置文件的虚拟主机,所有这些都设置了 DJANGO_SETTINGS_MODULE 系统变量,它们不会覆盖彼此的设置吗?

是否会在每次请求时“即时”更改此设置?在这种情况下,是否有更有效的方法来处理这种多主机设置?

谢谢,

【问题讨论】:

    标签: python django apache mod-wsgi


    【解决方案1】:

    django 安装都有自己的 python-scope。这意味着site1的变量在site2中不可用。这与两个 python-shell 相同。无法访问其他环境。

    所以您有两个正在运行的项目实例。一个用于站点 1,一个用于站点 2。

    我也以这种方式处理我的安装,但我可以想象只使用一个安装并在子页面中提供诸如 api 之类的东西会更好。但我不知道,它是否对性能有显着改善。

    【讨论】:

    • 是的,默认情况下,每个 WSGI 应用程序在进程中都有自己的子解释器。隔离并不总是完美的,但通常是有效的。为了获得最佳隔离效果,最好通过组合使用 WSGIDaemonProcess/WSGIProcessGroup 为每个 WSGI 应用程序使用单独的 mod_wsgi 守护进程组。
    猜你喜欢
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 2013-07-29
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多