栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python web 的基础 WSGI (uWSGI, uwsgi)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python web 的基础 WSGI (uWSGI, uwsgi)

一、WSGI简介:

        Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口协议。

        这个协议的主要目的就是保证python中所有Web Server程序或者说是Gateway(网关)程序,能够通过统一的协议跟Web 框架或者说是Web 应用进行交互。

二、WSGI,uWSGI,uwsgi 的关系:

        我相信,刚看到这三个玩意的时候,不只是我被他们弄得糊里糊涂。这里详细的给大家介绍一下这三个看着差不多,实际又不同的东西究竟有何区别。

        首先强调本质区别:uWSGI 是服务器,而:WSGI 和 uwsgi  是协议。

        废话不多说,上图:

        uWSGI:是 python web 框架的通用服务器,用于处理请求和框架之间的交互,而交互的协议便是WSGI,本质上负责的功能和Nginx是一样的。

        uwsgi:则是uWSGI服务器自有的协议,用于定义传输数据的类型等,是Nginx与uWSGI交互的工具。

三、既然有uWSGI了为什么还要用Nginx:

        首先,两者的功能实际上都是一致的,都是分析HTTP请求,然后通信给后端框架进行数据处理,再把结果反馈给用户。

        实则,不使用Nginx的情况下,web server一样可以运行,如图中的下面那一条逻辑。

        但Nginx是专业级选手,适用于任何语言,uWSGI则是仅用于python web的一个服务器框架,前者的强大也不是后者可以比拟的。

        Nginx有着更为强大的性能,比如均衡负载能力、更强的静态资源的加载能力、多项目部署,前后端分离等等,这些都是uWSGI不具备或是不如的地方。

四、ASGI和WSGI的关系:

        ASGI名为异步网关接口,实际上是WSGI的一个扩展,支持了websocket通信,在框架中没有使用到websocket通信时,使用WSGI就足够了。
 

后续,这篇文章会更新对于WSGI的深入探索,以上内容仅是我个人学习理解的内容,并不代表就一定是正确的,如有问题欢迎提出更改。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444518.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号