Flask与WSGI
刚开始接触到python及Flask框架时,总是会听到 wsgi等等相关的名词,以及 项目部署时会用到nginx+gunicorn等等,但是对于一个请求从 nignx到gunicorn再到falsk框架中间经历的却一直似懂非懂。现在总结一下。
WSGI server:负责从客户端接受请求,将request转发给 WSGI application,再将 WSGI application返回的response传给客户端。
WSGI application:负责接受从WSGI server 发送来的 request,出来完请求后,将response返回给WSGI server。此application可以包括多个栈结构的中间件(比如django)
WSGI:全名(Web Server Gateway Interface)是一种规范协议(和http协议一个级别),规定了WSGI server和WSGI application如何进行通信。
uWSGI:一个web服务器,实现了WSGI,uwsgi,http等协议。如下官网引用(有的教程害死人,大小写不仔细区分,导致错误的理解,所以特意看了官网的解释:https://uwsgi-docs.readthedocs.io/en/latest/index.html):
The uWSGI project aims at developing a full stack for building hosting services
uwsgi:一种通信协议,专服务于uWSGI服务器
一般通过supervisor+nginx+gunicorn的部署结构的请求步骤如下:

其实Flask等web框架内部已经有了一个 WSGI server用来接受请求,只是因为其自带的server在处理并发等情况时不够优秀,毕竟这些框架的重点放在了WSGI applicaiton的层面上。所以在生产部署时,才需要 额外的gunicorn或uWSGI服务器(实现WSGI server)来代替框架内部的WSGI server.
相关网址:
https://www.cnblogs.com/gdkl/p/6807667.html
https://www.cnblogs.com/wspblog/p/8575101.html
http://python.jobbole.com/88653/
https://blog.csdn.net/sinat_36651044/article/details/77462831
Flask与WSGI的更多相关文章
- 因采用 Flask 原生 WSGI 出现 "Broken pipe" 报错的故障处理
:first-child { margin-top: 0; } blockquote > :last-child { margin-bottom: 0; } img { border: 0; m ...
- Windows + Flask + Apache + wsgi踏坑总结
据前人踏坑经历,拷贝如下: 1. Apache,mod_wsgi和Python都必须用相同版本的C/C++编译器生成,要么都是32位的,要么都是64位的,不能混用. 2. Apache和mod_wsg ...
- Flask之WSGI:Werkzeug
WSGI 一个Web应用的本质就是: 浏览器发送一个HTTP请求: 服务器收到请求,生成一个HTML文档: 服务器把HTML文档作为HTTP响应的Body发送给浏览器: 浏览器收到HTTP响应,从HT ...
- CentOS 6.5 Python 2.6.6+Flask 用wsgi方式部署在Apache 2.2.15下
1,安装wsgi Apache模块 easy_install mod_wsgi 2,添加/etc/httpd/conf.d/wsgi.conf LoadModule wsgi_module modul ...
- 客官,您的 Flask 全家桶请收好
http://www.factj.com/archives/543.html Flask-AppBuilder - Simple and rapid Application buil ...
- Flask快速入门,知识整理
一.Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是 ...
- 80、Flask用法简析
本篇导航: 基本使用 模板.请求和响应 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于 ...
- flask之入门
本篇导航: Flask介绍 简单使用 排错 小结 一. Flask介绍 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug ...
- flask基础一
一:flask认知 flask 短小精悍,可扩展强 flask 所有扩展的网址,flask.pocoo.org/externsions 有别于其他的web框架的地方:flask做了一个上下文管理机制 ...
随机推荐
- ssh连接虚拟机centos
ssh连接虚拟机centos 虚拟机下CentOS7开启SSH连接 注意:安装虚拟机的时候,网络一定选择桥接模式.
- .net core 生成
查看发布命令:dotnet publish --help 1:进入项目根目录 2:dotnet publish 或者发布到指定路劲 dotnet publish .\web.meb.scpr ...
- nginx——控制 Nginx 并发连接数
1. 限制单个 IP 的并发连接数 .... http { include mime.types; default_type application/octet-stream; sendfile on ...
- $_SERVER['HTTP_REFER'] 和 session cookie 关系
对Session和Cookie的区分与理解 先说session 对SESSION的争论好象一直没有停止过,不过幺麽能理解SESSION的人应该占90以上.但还是讲讲,别嫌老~ 有一些人赞成用SESSI ...
- C# 之TripleDESCryptoServiceProvider类加密/解密程序
这篇博文的编写基于以下博客地址提供的知识: TripleDESCryptoServiceProvider 加密解密 基于该博客,我的毕业设计中密码存储加密字符串这一问题得到解决.
- spring-task解决定时问题
* spring3以上版本,spring-content自带 spring-task ,来解决工程中的定时问题 基于注解配置spring定时任务 spring配置文件如下: <?xml ve ...
- 3.python集合
1.集合1.不同元素组成2.无序排列的可hash值3.集合中元素必须是不可变类型(数字,字符串,元祖) 2.集合创建:(1)定义可变类型集合set:把里面元素一个一个进行for循环往大括号里放 set ...
- vs+qt 运行过程出现cannot run rc.exe
刚开始,我按照网上的一堆教程在qt creator中设置了各种东西,设置完以后,运行时出现cannot run rc.exe,根据百度,将C:\Program Files (x86)\Windows ...
- psql的安装与数据库创建(ubuntu)
来自阮一峰日志 http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql --------------------- ...
- session token两种登陆方式
Session 和 Token 其实Session和Token总体上还是很相似的,但是也有以下区别: 1. 过期时间:Session的过期时间存在cookie的Max-age字段,Token的过期时间 ...