当前位置: 移动技术网 > IT编程>脚本编程>Python > uWSGI、WSGI、uwsgi、wsgiref、werkzeug

uWSGI、WSGI、uwsgi、wsgiref、werkzeug

2019年10月22日  | 移动技术网IT编程  | 我要评论

宁夏人事考试,牛洪利,丈夫痈

wsgi

wsgi:全称是web server gateway interfacewsgi不是服务器,也不是python模块、框架、api或者任何软件,只是一种规范,描述web server如何与web application通信的规范。是web服务器和web应用程序之间或框架之间的通用接口标准

wsgi就是一座桥梁,wsgi的接口分为两个:一个是与web服务器的接口,一个是与服务器端程序的接口;wsgi的作用就是在协议之间进行转化。wsgi将web组件分成了三类:web 服务器(wsgi server)、web中间件(wsgi middleware)与web应用程序(wsgi application)。
web server接收http请求,封装一系列环境变量,按照wsgi接口标准调用注册的wsgi application(如:django程序),最后将响应返回给客户端。

虽然wsgi的设计目标是连接标准的web服务器(nginx、apache)与服务器端程序,但它本身也可以作为web服务器运行。但由于性能方面的限制,该服务器一般只在测试时使用。

wsgiref

wsgiref则是官方给出的一个实现了wsgi标准用于演示用的简单python内置库,它实现了一个简单的wsgi server和wsgi application(在simple_server模块中),主要分为五个模块:simple_server, util, headers, handlers, validate。本质上就是编写一个socket服务端,用于接收用户请求(django)
wsgiref源码地址:

werkzeug

werkzeug 不是一个web服务器,也不是一个web框架,而是一个工具包,官方的介绍说是一个 wsgi 工具包,它可以作为一个 web 框架的底层库,因为它封装好了很多 web 框架的东西,werkzeug,本质上就是编写一个socket服务端,用于接收用户请求(flask),和django中的wsgiref是类似的。

uwsgi

uwsgi:是一种线路协议,是uwsgi服务器的独占协议,用于定义传输信息的类型(type of information),每一个uwsgi packet 前4byte为传输信息类型的描述,与wsgi协议是两种东西。

uwsgi

uwsgi是一个web服务器,它实现了wsgi协议、uwsgi、http等协议。nginx中httpuwsgimodule的作用是与uwsgi服务器进行交换。django项目部署实际上是uwsgi,他才是web服务器,而不是uwsgi。

有了uwsgi为什么还需要nginx?

因为nginx具备优秀的静态内容处理能力,然后将动态内容转发给uwsgi服务器,这样可以达到很好的客户端响应。支持的并发量更高,方便管理多进程,发挥多核的优势,提升性能。这时候nginx和uwsgi之间的沟通就要用到uwsgi协议。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网