WSGI是什么?

WSGI是什么?

WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。自从 WSGI 被开发出来以后,许多其它语言中也出现了类似接口。

WSGI 的官方定义是,the Python Web Server Gateway Interface。从名字就可以看出来,这东西是一个Gateway,也就是网关。网关的作用就是在协议之间进行转换。

WSGI 是作为 Web 服务器与 Web 应用程序或应用框架之间的一种低级别的接口,以提升可移植 Web 应用开发的共同点。WSGI 是基于现存的 CGI 标准而设计的。

很多框架都自带了 WSGI server ,比如 Flask,webpy,Django、CherryPy等等。当然性能都不好,自带的 web server 更多的是测试用途,发布时则使用生产环境的 WSGI server或者是联合 nginx 做 uwsgi 。

也就是说,WSGI就像是一座桥梁,一边连着web服务器,另一边连着用户的应用。但是呢,这个桥的功能很弱,有时候还需要别的桥来帮忙才能进行处理。WSGI 的作用如图所示:

WSGI的作用

WSGI有两方:“服务器”或“网关”一方,以及“应用程序”或“应用框架”一方。服务方调用应用方,提供环境信息,以及一个回调函数(提供给应用程序用来将消息头传递给服务器方),并接收Web内容作为返回值。

所谓的 WSGI中间件同时实现了API的两方,因此可以在WSGI服务和WSGI应用之间起调解作用:从WSGI服务器的角度来说,中间件扮演应用程序,而从应用程序的角度来说,中间件扮演服务器。“中间件”组件可以执行以下功能:

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

WSGI是什么?的相关文章

win7 32位配置apache+wsgi+django环境

1下载xampp,里面有apache,mysql,phpmyadmin, 2 下载wsgi,http://download.csdn.net/download/copter/9192361 将对应的模块解压放到D:\programs\xampp\apache\modules 然后到D:\programs\xampp\apache\conf\httpd.conf中 # 添加mod_wsgi.so 模块LoadModule wsgi_module modules/mod_wsgi.so # Virt

Ubuntu apache2 wsgi 部署django

在ubuntu上部署django其实还算简单直观,最重要的问题就是路径设置正确. 一,安装python 和django.这个很简单,django用pip安装就可以.就不解释了. 二,安装apache2 和 wsgi. 这里用的是apt-get. sudo apt-get insall apache2 sudo apt-get install libapache2-mod-wsgi 需要注意的是,如果之前安装配置过apache2的并且配置很乱,无法修复,建议还是完全卸载之后在安装.完全卸载的命令:

WSGI 简介

WSGI 简介

ubuntu python apache2 wsgi django框架

在ubuntu上通过apatch2和wsgi部署django (亲手做过!!!) 一,我的python.django.apatch2版本: python:python -V 2.7.3 django:python -c "import django; print(django.VERSION)" (1, 9, 4, 'final', 0) apache2:/usr/sbin/apachectl -v Server version: Apache/2.2.22 (Ubuntu) Serv

[WSGI]WSGI的服务端怎么实现?

WSGI ( Python Web Server GateWay Interface) 是一个用在python web server 跟web application 之间的协议,遵从WSGI协议设计的web server 跟web application 框架可以彼此通信,因此开发人员可以将精力集中于web application的开发中,web server也可以运行基于WSGI规范的web application 框架. uWSGI是一个web server,实现了WSGI.uwsgi.h

python框架Django与WSGI

今天学习了一下用简单的Django框架与简单的WSGI服务器配套运行一个简单的Django项目: Django不是完整的web后端框架,它需要和一个WSGI服务器配套,由WSGI服务器负责网络通讯部分. 1.Django与WSGI WSGI全称:Web Server Gateway Interface,是Python定义的WSGI程序和WSGI服务器之间的一种接口 现一个WSGI应用,只需要满足3个要求: 是可调用的,比如是一个函数,或者是一个可调用类(具有__call__方法)的实例 WSGI

django自带wsgi server vs 部署uwsgi+nginx后的性能对比

一.下面先交代一下测试云主机 cpu: [email protected]:/tmp/webbench-1.5# cat /proc/cpuinfo |grep model model : 69 model name : Intel(R) Core(TM) i5-4260U CPU @ 1.40GHz [email protected]:/tmp/webbench-1.5# mem: [email protected]:/tmp/webbench-1.5# free -m total used

Python WSGI

因为服务都以restful api的方式提供给外界访问,于是又要看WSGI,要用到PasteDeploy库,但是感觉资料有些难懂尤其是paste.ini的使用上,下面几篇还算不错 [1] http://wanglianghuaihua.blog.163.com/blog/static/5425153120138273471531/ [2] http://pythonpaste.org/deploy/ ([1]是对[2]的翻译,不过有些部分没有在[1]中出现,看看原文还是有必要的) [3] htt

wsgi(django与apache整合)

wsgi   (web server gateway interface) 官方文档: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/ 1.安装wsgi [[email protected] ~]# yum install mod_wsgi 2.修该django.py配置文件 [[email protected] conf.d]# vim /etc/httpd/conf.d/django.conf<Virt

Redhat 7 httpd 显示wsgi页面

# yum install httpd # yum install mod_wsgi # vi /etc/httpd/conf.d/wsgi.conf <VirtualHost *:80> DocumentRoot /var/www/wsgi WSGIScriptAlias / /var/www/wsgi/webapp.wsgi </VirtualHost> :wq # systemctl restart httpd