UWSGI和WSGI和nginx

什么是UWSGI和WSGI

uwsgi协议

uwsgi(小写!)协议是uWSGI服务器使用的本机协议。

它是一个二进制协议,可以携带任何类型的数据。uwsgi数据包的前4个字节描述了该数据包包含的数据的类型。

每个uwsgi请求都会以uwsgi格式生成响应。

甚至Web服务器处理程序也遵守此规则,因为HTTP响应是有效的uwsgi数据包(请参阅modifier1= 72)。

该协议主要通过TCP起作用,但是主进程可以绑定到UDP单播/多播,用于嵌入式SNMP服务器或群集管理/消息请求。

SCTP支持正在开发中。

什么是 WSGI

先说一下CGI,(通用网关接口, Common Gateway Interface/CGI),定义客户端与Web服务器的交流方式的一个程序。例如正常情况下客户端发来一个请求,根据HTTP协议Web服务器将请求内容解析出来,进过计算后,再将加us安出来的内容封装好,例如服务器返回一个HTML页面,并且根据HTTP协议构建返回内容的响应格式。涉及到TCP连接、HTTP原始请求和相应格式的这些,都由一个软件来完成,这时,以上的工作需要一个程序来完成,而这个程序便是CGI

那什么是WSGI呢?维基上的解释为,Web服务器网关接口(Python Web Server Gateway Interface,WSGI),是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。从语义上理解,貌似WSGI就是Python为了解决Web服务器端与客户端之间的通信问题而产生的,并且WSGI是基于现存的CGI标准而设计的,同样是一种程序(或者Web组件的接口规范?)。

WSGI区分为两部分:一种为“服务器”或“网关”,另一种为“应用程序”或“应用框架”。
所谓的WSGI中间件同时实现了API的两方,即在WSGI服务器和WSGI应用之间起调解作用:从WSGI服务器的角度来说,中间件扮演应用程序,而从应用程序的角度来说,中间件扮演服务器。中间件具有的功能:

  • 重写环境变量后,根据目标URL,将请求消息路由到不同的应用对象。
  • 允许在一个进程中同时运行多个应用程序或应用框架
  • 负载均衡和远程处理,通过在网络上转发请求和相应消息。
  • 进行内容后处理,例如应用XSLT样式表。(以上 from 维基)

看了这么多,总结一下,其实可以说WSGI就是基于Python的以CGI为标准做一些扩展。

什么是ASGI

异步网关协议接口,一个介于网络协议服务和Python应用之间的标准接口,能够处理多种通用的协议类型,包括HTTPHTTP2WebSocket
然而目前的常用的WSGI主要是针对HTTP风格的请求响应模型做的设计,并且越来越多的不遵循这种模式的协议逐渐成为Web变成的标准之一,例如WebSocket
ASGI尝试保持在一个简单的应用接口的前提下,提供允许数据能够在任意的时候、被任意应用进程发送和接受的抽象。并且同样描述了一个新的,兼容HTTP请求响应以及WebSocket数据帧的序列格式。允许这些协议能通过网络或本地socket进行传输,以及让不同的协议被分配到不同的进程中。

WSGI和ASGI的区别在哪

以上,WSGI是基于HTTP协议模式的,不支持WebSocket,而ASGI的诞生则是为了解决Python常用的WSGI不支持当前Web开发中的一些新的协议标准。同时,ASGI对于WSGI原有的模式的支持和WebSocket的扩展,即ASGIWSGI的扩展。

nginx的正向代理和反向代理

nginx概述

nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。

正向代理

在如今的网络环境下,我们如果由于技术需要去访问国外的某些网站,此时你会发现位于国外的某些网站我们通过浏览器是没有办法访问的,此时大家都可能会用一个操作FQ进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们。这就是正向代理。正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。

反向代理

比如某宝网站,每天同时连接到网站的访问人数已经爆表,单个服务器远远不能满足人民日益增长的购买欲望了,此时就出现了一个大家耳熟能详的名词:分布式部署;也就是通过部署多台服务器来解决访问人数限制的问题;某宝网站中大部分功能也是直接使用nginx进行反向代理实现的,并且通过封装nginx和其他的组件之后起了一个高大上的名字:Tengine

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值