我已经和manage.py runserver个人一起运行了我的初学者Django项目.我看到了改用gunicorn的建议.有什么不同呢?

推荐答案

nginx和gunicorn可能是生产部署中最流行的配置.在详细说明为什么建议使用gunicorn而不是runserver之前,让我们快速澄清一下nginx和gunicorn之间的区别,因为两者都表示它们是web服务器.

NGINX应该是您面向公众的入口点,它是监听端口80(Http)和443(Https)的服务器.它的主要用途是handling HTTP requests,即应用重定向、HTTP身份验证(如果需要)、管理TSL/SSL证书以及决定请求的最终目的地等.例如,可能有一个node.js应用程序生活在localhost:3000号,它等待/foo/api号的请求,而Gunicorn则在localhost:8000号等待为你令人惊叹的应用程序提供服务.将传入请求代理到所谓的upstream服务(在本例中为node.js和genicorn)的这种功能称为反向代理.

GUNICORN是一台translates HTTP requests into Python的服务器.WSGI是实现这一点的接口/实现之一(例如,http头的文本部分被转换为键值dict).

Django's built-in development web server(您在运行manage.py runserver时得到的)也提供了该功能,但它针对的是开发环境(例如,当代码更改时重新启动),而Gunicorn针对的是生产环境.

Gunicorn有许多Django内置服务器所缺乏的功能:

  • Gunicorn可以派生多个工作进程,以将传入的请求并行化到多个CPU核心
  • 黑角兽有更好的伐木
  • 黑角兽通常会在速度上进行优化.
  • 黑角兽可以是 根据您的设置配置为精细等级
  • 黑角兽是 积极设计和维护,并考虑到安全性

除了Gunicorn之外,还有其他web服务器,但是Gunicorn(灵感来自ruby的独角兽)非常受欢迎并且易于设置,因此不仅是一个很好的起点,而且是大型项目使用的专业解决方案.

Django相关问答推荐

使用django直接计算geohash而不创建模型

DjangoAdmin与外部数据库的模型无法保存或过滤

如果字段为空,则 Unique_together 不起作用.怎么约束呢?

在 Django 中重组多对多字段

将两个视图重定向到具有不同 url id Django 的一个模板的正确方法

django 的 Manager.create() 方法有什么作用?

Nginx 响应 404 not found on Django media URL in preprod, dev ok

- 不支持的操作数类型:DateField和DateField

如何让两个模型相互引用 Django

如何在 django tests.py 中创建管理员用户

如何在不使用 sudo 的情况下安装 virtualenv?

有没有办法将变量传递给 Django 中的 extended模板?

Python 和 Django OperationalError (2006, 'MySQL server has gone away')

如何在 django admin 中显示布尔属性

单击弹出框会滚动回页面顶部 [Bootstrap 和 Django]

Django 有 SmallIntegerField 的原因是什么?

将 jQuery 脚本添加到 Django 管理界面

ProgrammingError: 安装 Psycopg2 后,关系django_session不存在错误

如何测试 Django QuerySets 是否相等?

Python Django 的多线程