WSGI,uwsgi,uWSGI简介

WSGI

全称(Web Server Gateway Interface),翻译过来就是Web服务器网关接口。WSGI是一个规范协议,定义了Web服务器(即uWSGI)如何与python应用程序进行交互。

在WSGI中定义了两个角色,web服务器端称为server或gateway,应用程序端称为application或Framework。

server端会先收到用户的请求,然后根据规范要求调用application端,调用的结果会被封装成HTTP响应后再发送给客户端。

应用程序端(application/Framework)的实现一般由python的各种框架完成,例如:django,flask等,框架会提供接口让开发者获取HTTP请求的内容和发送HTTP响应。

Web服务器端(server/gateway)的实现相对复杂一点,主要是因为软件架构。常用的web服务器有:Apache和nginx,但是都没有内置WSGI。而是通过扩展来实现,比如:

Apache服务器,会通过扩展模块mod_wsgi来支持WSGI。Apache和mod_wsgi之间通过程序内部接口传递信息,mod_wsgi会实现WSGI的server端、进程管理以及对application的调用。

Nginx上一般是用proxy的方式,用nginx的协议将请求封装好,发送给应用服务器,比如uWSGI,应用服务器会实现WSGI的服务端、进程管理以及对application的调用。

uwsgi

是一个二进制协议,可以携带任何类型的数据。一个uwsgi分组的头4个描述这个分组包含的数据类型。uwsgi是服务器和服务端应用程序的通信协议,常用在uWSGI服务器与网络服务器的数据通信。规定了怎么把请求转发给应用程序和返回。

uWSGI

uWSGI是一种web服务器,是实现uwsgi和WSGI两种协议的web服务器。

整两张图:
在这里插入图片描述
在这里插入图片描述
nginx 和 uWSGI交互就必须使用同一个协议,而上面说了uwsgi支持fastcgi,uwsgi,http协议,这些都是nginx支持的协议,只要大家沟通好使用哪个协议,就可以正常运行了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值