一文了解WSGI,uWSGI,(u)wsgi的区别,有图为伴

Preliminary

  • 网关的作用就是在协议之间进行转换。 uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。 Nginx中
  • HttpUwsgiModule的作用是与uWSGI服务器进行交互。
  • wsgi server OR wsgi application均是实现了wsgi 协议的server OR application
  • uwsgi协议<服务器和服务端应用程序的通信协议,规定了怎么把请求转发给应用程序和返回>是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type
    of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。
  • Gunicorn 是实现WSGI和HTTP协议的服务器

wsgi server 和wsgi application,WSGI之间的互动

wsgi server (比如uWSGI) 要和 wsgi application(比如django )交互,uWSGI需要将过来的请求转给wsgi application处理,那么uWSGI 和 wsgi application的交互和调用就需要一个统一的规范,这个规范就是WSGI WSGI(Web Server Gateway Interface)

WSGI<基于现存的 CGI 标准设计>,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。In other words, 它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范

WSGI / uwsgi / uWSGI区分

WSGI是一种通信协议。
uwsgi是一种线路协议 而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。
而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。

FastCgi协议, uwsgi协议, http协议有什么用?

nginx 和 uWSGI交互就必须使用同一个协议,而上面说了uWSGI支持FastCgi,uwsgi,http协议,这些都是nginx支持的协议,只要大家沟通好使用哪个协议,就可以正常运行了。

馊主意

全小写是线路协议。eg. <u>wsgi
全大写是通信协议。eg. WSGI
第一个字母小写,其余全大写是web 服务器。 eg.uWSGI,实现了uwsgi 和WSGI协议

图解

在这里插入图片描述
在这里插入图片描述

巨人的肩膀

uWSGI、WSGI和uwsgi - Dus - 博客园

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章