Django部署时为何要用 uWSGI与 Nginx? 以及 WSGI,uwsgi等协议


Django框架的服务器架构通常是 Nginx + uWSGI + Djangopython


(1)一些基本概念django


1 WSGI协议,uwsgi协议浏览器

WSGI协议(通信协议):Python用于Web开发的协议(用于处理Web服务器和应用程序(APP)的交互信息)

    (把http通信的过程抽象出来(请求数据,响应数据的封装),开发者只负责处理中途的数据) 


    uwsgi协议(传输协议,速度很快):uWSGI程序实现的一个自有的协议(采用二进制来存储数据,以前的协议都是使用字符串,因此在存储空间和解析速度上,都更快)

注意:

    WSGI是一种通讯协议。
    
    uwsgi是一种线路协议而不是通讯协议,在此经常使用于在uWSGI服务器与其余网络服务器的数据通讯。

Web框架通常都自带wsgi服务器 可是性能很差,只做测试用途。(django--wsgiref)缓存


2 wsgiref模块(django 框架自带)安全

python提供的,用于测试和学习的简单的WSGI服务器模块。服务器

这个模块监听8000端口,把Http请求,根据WSGI协议,转换application函数中的environ参数,而后调用application函数。 
    wsgiref会把application函数提供的响应头设置转换为HTTP协议的响应头,把application的返回(return)做为响应体,根据HTTP协议,生成响应,返回给浏览器。


3 uWSGI服务器网络

uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。


4 为何要使用Nginx 来作负载均衡架构

Nginx

    1 安全(Nginx 做为专业服务器,暴露在公网相对比较安全)

    2 能更好地处理静态资源(一些http request header)

    3 Nginx也能够缓存一些动态内容Nginx能够更好地配合CDN

    4 能够进行多台机器的负载均衡

固然,若是访问量不大,其实也不必加个Nginx,uWSGI足以胜任。app

相关文章
相关标签/搜索