【问题标题】:deploying multiple django projects with apache, one wsgi or many?使用 apache、一个 wsgi 或多个部署多个 django 项目?
【发布时间】:2013-09-12 16:54:54
【问题描述】:

我有一些我从事的 django 项目,我想用 wamp 服务器部署它们。我希望我的结构看起来像这样:

/www
    /project1
             /static
             /media
             /templates
             /project1
                  /settings.py
                  /urls.py
             /app1
             /app2

    /project2
             /static
             /media
             /templates
             /project1
                  /settings.py
                  /urls.py
             /app1
             /app2

那么 url 将指向:

http://localhost/project1/(urls of project1)
http://localhost/project2/(urls of project2)

每个项目都使用不同的数据库、不同的管理站点(有些是自定义的)等等。我永远不需要在他们之间共享数据。我尝试搜索和阅读它,并且使用多个 WSGI 脚本似乎really buggy。同样据我了解,我无法使用推荐的守护程序模式,因为我使用的是 Windows。

在同一台服务器上使用多个 wsgi 脚本是否令人不快?我应该尝试创建一个可以处理所有项目的项目吗?它看起来如何,以及如何配置 apache 来使用它?我上面的预期结构完全错误吗?

我正在使用 Apache 2.2e 和 mod_wsgi 3.3、Django 1.5.1 和 python 2.7

【问题讨论】:

    标签: django apache mod-wsgi


    【解决方案1】:

    不,不赞成使用多个 WSGI 脚本,这样做也不是错误的,除非 Django 生成一个狡猾的 WSGI 脚本文件,您需要更改该文件以确保不会出现环境变量泄漏.

    也就是说,您可能仍然对 Python 的第三方 C 扩展模块存在问题,这些模块已损坏并且无法在子解释器中工作,这就是为什么如果可以的话,最好使用守护程序模式,因为您可以解决此类问题有缺陷的第三方模块。

    所以总体而言,mod_wsgi 没有问题,但如果使用其他使用次优配置方式的软件或被设计破坏的软件,您可能会遇到问题。

    我个人建议不要使用 Windows,因为运行 Python Web 应用程序的环境很差。只有在绝对别无选择的情况下才使用 Windows。

    【讨论】:

    • 哇!格雷厄姆·邓普顿本人的回答。谢谢!除了windows,我(目前)别无选择,但不可否认,我也不熟悉linux环境(尽管我很想成为)。我想使用守护进程,但 django 文档提到它不适用于 Windows - 所以我不能使用它?或者我可以,但它无济于事?
    • 另外,您在(精彩的)文章中提到 WSGI 别名需要按长度排序。假设我不使用“/”别名并给每个项目一个特定的名称来添加其 url,我还需要按长度排序吗?
    • 不是长度,而是嵌套最深。因此,根据每个片段中的深度和名称进行排序,而不仅仅是总字符数。
    • 我想我明白了。再次感谢
    猜你喜欢
    • 2014-05-21
    • 2012-12-19
    • 2012-11-16
    • 1970-01-01
    • 2012-01-31
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    相关资源
    最近更新 更多