参考http://blog.csdn.net/u013378306/article/details/76215982
django 原生为单线程序,当第一个请求没有完成时,第二个请求辉阻塞,知道第一个请求完成,第二个请求才会执行。
可以使用uwsgi 编程多并发的
django 的并发能力真的是令人担忧,这里就使用 nginx + uwsgi 提供高并发
nginx 的并发能力超高,单台并发能力过万(这个也不是绝对),在纯静态的 web 服务中更是突出其优越的地方,由于其底层使用 epoll 异步IO模型进行处理,使其深受欢迎
做过运维的应该都知道,php 需要使用 nginx + fastcgi 提供高并发,java 需要使用 nginx + tomcat 提供 web 服务
下面介绍如何使用 nginx + uwsgi 为 django 提供高并发 web 服务
1、系统环境
[root@crazy-acong ~]# uname -a
Linux crazy-acong 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@crazy-acong ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
2、python 及 django 版本
[root@crazy-acong ~]# django-admin --version
1.10.6
3、安装 uwsgi 及 测试 uwsgi
3.1 安装
[root@crazy-acong ~]# pip install uwsgi
3.2 测试 uwsgi 提供 web 服务的功能
# 创建 test.py 文件
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"] # python3
#return ["Hello World"] # python2
# 启动 uwsgi 服务
[root@crazy-acong ~]# uwsgi --http :8000 --wsgi-file test.py
# 查看启动进程
[root@crazy-acong ~]# netstat -lnpt | grep uwsgi
tcp 0 0 127.0.0.1:26685 0.0.0.0:* LISTEN 22120/uwsgi
tcp 0 0 0.0.0.0:8000 0.