目录篇:Django总目录篇 点击跳转
目录
- 部署前戏
- uwsgi介绍
- 让Django并发多少都不是问题
- linux实战部署Django+uwsgi+nginx
- 1.环境准备
- 2.部署uswgi并测试
- 3.部署Django程序并测试
- 4.usgi与nginx之间的线路通讯配置
- 5.监控uwsgi的负载
- 6.安装NGINX
- 7.配置nginx和uwsgi直接的通讯配置并测试
- 8.配合负载均衡
- 9.最终测试
- 10.查看nginx访问日志看用户访问流程
部署前戏
pycharm环境下的django承受不了多并发(几十个人并发访问就down掉)
生成环境中django需要承载高并发的,所以是Django + Uwsgi + Nginx(IO多路复用epel)
uwsgi介绍
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
要注意 WSGI / uwsgi / uWSGI 这三个概念的区分。
1.WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用django\Flask\tornado\nodejs\..\框架写的程序)通信的一种规范。
2.uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。(uWSGI和Nginx一样属于WEB服务器,而uwsgi线路协议是为uWSGI服务的)
3.而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。
4.uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。
web访问顺序:用户访问--->Nginx---->uWSGI---->django
从上面看nginx +uWSGI+django一台机器可以每秒处理并发2000+
uWSGI的主要特点如下
1.超快的性能
2.低内存占用(实测为apache2的mod_wsgi的一半左右)
3.多app管理(终于不用冥思苦想下个app用哪个端口比较好了-.-)
4.详尽的日志功能(可以用来分析app性能和瓶颈)
5.高度可定制(内存大小限制,服务一定次数后重启等)
让Django并发多少都不是问题
除了部署nginx +uWSGI+django一台机器可以每秒处理并发2000+
我们还需要配合服务器集群
如果你懂linux服务器集群,下面是以前写的用户到网站的集群内部流程(意味你有多少台web服务器,并发随之增长)
linux实战部署Django+uwsgi+nginx
1.环境准备
服务器:
负载均衡服务器 ip:10.0.0.6(使用了niginx工具实现负载均衡,同时使用了keeplive做