这是我使用gevent + Monkey patching运行Django的方法:
我已经修改了,manage.py
所以第一行(在shebang之后)是from gevent import monkey; monkey.patch_all()
我添加了一个新run_production_server
脚本(见下文)。
最后,我将前端Web服务器配置为代理对端口1234
(run_production_server
正在侦听的端口)的请求。
from gevent import monkey; monkey.patch_all()
from gevent.wsgi import WSGIServer
from django.core.management import setup_environ
import settings
setup_environ(settings)
from django.core.handlers.wsgi import WSGIHandler as DjangoWSGIApp
application = DjangoWSGIApp()
server = WSGIServer(("127.0.0.1", 1234), application)
print "Starting server on http://127.0.0.1:1234"
server.serve_forever()
有些人可能抱怨这台服务器不够“网络扩展”。我怀疑他们是否能够提供基准来证明这一点,但是如果您担心也可以使用gunicorn
或uwsgi
用于服务器。但这对我来说很好。