方案: nginx + uWSGI 提高 Django的并发性
1. uWSGI :
uWSGI是一个web服务器,实现了WSGI
协议、uwsgi
协议、http
协议等。
uWSGI
的主要特点是:
- 超快的性能
- 低内存占用
- 多
app
管理 - 详尽的日志功能(可以用来分析
app
的性能和瓶颈) - 高度可定制(内存大小限制,服务一定次数后重启等)
uWSGI
服务器自己实现了基于uwsgi
协议的server
部分,我们只需要在uwsgi
的配置文件中指定application
的地址,uWSGI
就能直接和应用框架中的WSGI application
通信。
2. nginx :
Nginx 是一个高性能的负载均衡HTTP和反向代理服务器,Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件代理服务器。
特点是占有内存少,并发能力强。
结构与扩展: 一个主进程和多个工作进程。工作进程是 单线程 的,且不需要特殊授权即可运行;
3. nginx和uWSGI的关系:
nginx相当于是服务器,负责接收请求
uwsgi是服务器和服务端应用程序的通信协议,规定了怎么把请求转发给应用程序和返回
2个基本概念:
服务器(接收请求),应用程序(处理请求并返回)
通信过程:
客户端发送一个http请求,被nginx服务器接收,nginx服务器将请求转发给uwsgi,uwsgi将请求转发给实现uwsgi协议的应用程序(flask,gunicorn等等)
nginx与uWSGI的安装与配置详见https://blog.csdn.net/yinhangxitong36/article/details/79821851