【发布时间】:2013-05-27 07:32:58
【问题描述】:
使用 gunicorn 运行 django 应用程序有 3 种方法:
-
标准
gunicorn+wsgi(ref django doc)gunicorn project.wsgi:application -
使用 gunicorn django 集成(参考 gunicorn doc 和 django doc):
python manage.py run_gunicorn -
使用
gunicorn_django命令(参考gunicorn doc)gunicorn_django [OPTIONS] [SETTINGS_PATH]
Django 的文档建议使用 1.,这在 Gunicorn 文档中甚至没有列为选项。
关于使用 gunicorn 运行 django 应用程序的最佳方式是否有任何最佳实践,这些不同解决方案的可预见的优点/缺点是什么?
看一眼gunicorn's code,看起来他们几乎都在做同样的事情:2. 似乎正在使用 django 的内部创建一个 wsgi 应用程序,3. 使用 2.
如果是这样的话,我什至不明白为什么不简单地使用“1”。一直以来,特别是因为自 django 1.4 以来为您自动创建了一个 wsgi.py 文件;如果这是真的,也许应该建议对文档进行改进......
此外,使用 django 进行 gunicorn 设置的最佳实践也很棒。使用1.,在wsgi文件中设置一些默认值,避免额外设置是否有意义?
参考资料:
- Should I use django-gunicorn integration or wsgi? 仅涉及选项 1. 和 3.,没有设置提示,答案也没有给出任何理由
- Deploying Django with gunicorn and nginx 提供一些更广泛的信息,但不严格相关也不回答这个问题
-
Django Gunicorn wsgi 关于版本“4”,正在启动
gunicorn -c configfile和 configfile 将指向 django_settings 到 django -
Django WSGI and Gunicorn 只是有点令人困惑 :) 混淆了 1. 和 3。当然
wsgi.py仅与 1 一起使用。
【问题讨论】:
-
我已经发布了 70 多个 django 最佳实践,以将 django 扩展到数百万用户。它还包括 gunicorn 和 wsgi 调优见解。 digiqt.com/blog/django-best-practices-for-scalable-apps.html