uWSGI与uwsgi协议

上一篇博客中有涉及到 NGINX+uWSGI 部署Django应用,其实在部署应用之前本人只是听过uWSGI,对于它的作用知之甚少,因为好学爱问(自认为(⊙o⊙)…),于是翻了一下相关的文档和博客浅识一番,本文将根据自己的理解对博客标题稍作讲解。

主题其实真的很很简单:

  • uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。
  • uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。

在Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。

uWSGI的主要特点如下:

  • 超快的性能。
  • 低内存占用(实测为apache2的mod_wsgi的一半左右)。
  • 多app管理。
  • 详尽的日志功能(可以用来分析app性能和瓶颈)。
  • 高度可定制(内存大小限制,服务一定次数后重启等)

以下翻译一段官网的文档:

Included components (updated to latest stable release)

包含的组件(更新至最新稳定发行版)

The Core (implements configuration, processes management, sockets creation, monitoring, logging, shared memory areas, ipc, cluster membership and the uWSGI Subscription Server)

核心(网络接口配置、进程管理、套接字创建、监控、日志、共享内存区域、进程间通信IPC【inter-Process Communication】、集群关系和uWSGI web服务器 )

Request plugins (implement application server interfaces for various languages and platforms: WSGI, PSGI, Rack, Lua WSAPI, CGI, PHP, Go …)

请求插件(提供各种平台编程语言的网络请求服务器接口:WSGI, PSGI, Rack, Lua WSAPI, CGI, PHP, Go等等)

Gateways (implement load balancers, proxies and routers)

网关(实现负载均衡、代理以及路由功能)

The Emperor (implements massive instances management and monitoring)

网络(实现大量的实例管理和监控)

Loop engines (implement events and concurrency, components can be run in preforking, threaded, asynchronous/evented and green thread/coroutine modes. Various technologies are supported, including uGreen, Greenlet, Stackless, Gevent, Coro::AnyEvent, Tornado, Goroutines and Fibers)

回环引擎(网络事件和并发、组件预创建、线程化、异步/事件驱动、绿色线程/协程模式、各种技术支撑,包含了uGreen, Greenlet, Stackless, Gevent, Coro::AnyEvent, Tornado, Goroutines and Fibers)

官方还说:
这里写图片描述

意思是这个项目发展的比较好且快,所以文档和最新代码实现不一定同步,有问题请发邮件,而且欢迎对最新的文档做出贡献的人(但我们不要你来写代码!)

官网文档在此

关于为什么选择uWSGI,官网如是说:因为你能!把你能的!

这里写图片描述

关于WSGI,你需要知道:

WSGI (Web Server Gateway Interface)

如全称代表的那样,WSGI不是服务器,不是API,不是Python模块,更不是什么框架,而是一种服务器和客户端交互的接口规范,处于协议层面(学名web服务器网关接口)!

以层的角度来看,WSGI所在层的位置低于CGI。但与CGI不同的是WSGI具有很强的伸缩性且能运行于多线程或多进程的环境下,这是因为WSGI只是一份标准并没有定义如何去实现。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值