【问题标题】:Should you deploy django with wsgi?你应该用 wsgi 部署 django 吗?
【发布时间】:2018-05-03 06:41:43
【问题描述】:

你需要用 wsgi 部署 django 吗?我在 Docker 实例上运行 Django,通常推荐的解决方案似乎只是使用 Django 的开发服务器,即命令python manage.py runserver。什么时候需要像 wsgi 这样的 Web 服务器——在这种情况下,在容器化应用程序中,django 开发服务器是否足以用于生产应用程序?

【问题讨论】:

标签: python django networking server wsgi


【解决方案1】:

你回答你自己的问题:

django 开发服务器是否足以用于生产应用程序?

django documentation,您可以阅读以下内容:

现在是注意的好时机:不要在任何类似于生产环境的环境中使用此服务器。它仅供开发时使用。 (我们的业务是制作 Web 框架,而不是 Web 服务器。)

还有this part:

请勿在生产环境中使用此服务器。它尚未通过安全审核或性能测试。 (这就是它会一直存在的方式。我们的业务是制作 Web 框架,而不是 Web 服务器,因此改进此服务器以使其能够处理生产环境超出了 Django 的范围。)

所以没有。不要在生产中使用 Django 开发服务器。安全风险、性能不佳等。

【讨论】:

    【解决方案2】:

    从不建议将开发服务器作为生产服务器的选项。它有多个security and performance issues

    对我们来说效果很好的解决方案是在 Nginx 反向代理后面的 Gunicorn(以便多人可以顺利连接。)

    this tutorial 中提到的方法是使用 nginx 和 gunicorn 设置 Ubuntu 的良好初学者指南。将 docker 加入混合使用时,请使用 this tutorial.

    【讨论】:

      【解决方案3】:

      您可以使用Django Channels 在生产中部署而不使用 WSGI。

      您可以通过以下两种方式之一进行设置;通过 HTTP/WebSocket 接口服务器路由所有流量,完全无需运行 WSGI 服务器;或者,只是将 WebSockets 和长轮询 HTTP 连接路由到接口服务器,而让其他页面由标准 WSGI 服务器提供服务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-04
        • 2018-02-18
        • 1970-01-01
        • 2014-07-15
        • 1970-01-01
        • 1970-01-01
        • 2011-01-20
        相关资源
        最近更新 更多