【问题标题】:What is the difference between these two configurations to run Django?这两种运行Django的配置有什么区别?
【发布时间】:2011-12-03 04:48:07
【问题描述】:

我有这两种配置。我想知道有什么区别,哪个更好更快?

第一次配置:

#!/home/user/bin/python
import sys, os
sys.path.insert(0,"/home/user/projects/")
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_project.settings'

from flup.server.fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
WSGIServer(WSGIHandler()).run()

第二次配置:

#!/home/user/bin/python
import sys, os
sys.path.insert(0,"/home/user/projects/")
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_project.settings'

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

谢谢!

更新:

I did a quick test with python cProfile lib.

【问题讨论】:

  • 您不会得到类似“FastCGI 总是比 wsgi 快”的答案,如果这正是您要寻找的。真正的答案是,“这取决于您的软件和硬件配置。”尝试同时运行两者,并使用 JMeter 之类的东西对它们进行基准测试。 jakarta.apache.org/jmeter

标签: python django apache fastcgi django-wsgi


【解决方案1】:

Django 原生使用 WSGI,因此通过 FastCGI 运行它为 HTTP 消息的传输添加了另一层。话虽如此,如果您可以在快速 FastCGI 容器或慢速 WSGI 容器之间进行选择,那么使用额外的层可能会更好。

【讨论】:

  • 那么,即使WSGI容器速度较慢,还是使用第一个配置更好?
  • 也许吧。我对容器一无所知。
  • WSGI 是一个 API。您别无选择,只能让 WSGI 坐在某种适配器上。对于 FASTCGI/SCGI/AJP,您可以使用 Flup。对于 mod_wsgi,它将 WSGI 连接到 Apache 堆栈。然后你有gunicorn,它将WSGI直接连接到Python HTTP服务器。无论如何,这一层通常永远不是瓶颈,更重要的是分析应用程序和数据库的性能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-08
  • 2019-12-11
  • 2019-03-31
  • 2020-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多