提高Django高并发性的解决方案

方案: 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

 

posted @ 2020-09-21 10:06  Achilles_Heel  阅读(1120)  评论(0编辑  收藏  举报