【问题标题】:Why not use "runserver" for production at Django?为什么不在 Django 中使用“runserver”进行生产?
【发布时间】:2021-07-15 18:34:04
【问题描述】:

我看到每个人都推荐 uWSGI 和 Gunicorn 用于生产模式。但是,使用它会带来更多的痛苦,python manage.py runserver 更快、更简单,并且如果出现问题,日志记录也更加明显。不过,为什么不推荐使用“python manage.py runserver”命令进行实时生产呢?

【问题讨论】:

  • 因为它isn't engineered for production use:“请勿在生产环境中使用此服务器。它尚未经过安全审核或性能测试。(这就是它的保留方式。我们从事这项业务制作 Web 框架,而不是 Web 服务器,因此改进此服务器以使其能够处理生产环境超出了 Django 的范围。)"

标签: python django server backend uwsgi


【解决方案1】:

runserver 管理命令针对来自网络服务器的不同事物进行了优化。以下是它所做的一些非常适合本地开发但会在生产环境中增加不必要开销的事情 (source):

  • 开发服务器会根据需要自动为每个请求重新加载 Python 代码
  • 当您启动服务器时,以及每次在服务器运行时更​​改 Python 代码时,系统检查框架都会检查您的整个 Django 项目是否存在一些常见错误
  • 如果启用了 staticfiles contrib 应用程序,则提供静态文件(以docs describe 为“效率极低且可能不安全”的方式)

同时,生产网络服务器旨在处理大规模并行工作负载,并且也符合 much higher security 标准,因为它们是所有端口 80/443 流量到服务器的入口点

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    相关资源
    最近更新 更多