博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WSGI、flup、fastcgi、web.py、uwsgi
阅读量:4987 次
发布时间:2019-06-12

本文共 1601 字,大约阅读时间需要 5 分钟。

 

==================        网上别人的理解 ===================

1、Apache/lighttpd: 相当于一个request proxy,根据配置,把不同的请求转发给不同的server处理,例如静态的文件请求自己处理,这个时候它就像一个web server,对于fastcgi/python这样的请求转发给flup这样的Server/Gateway进行处理

2、flup: 一个用python写的web server,也就是cgi中所谓的Server/Gateway,它负责接受apache/lighttpd转发的请求,并调用你写的程序 (application),并将application处理的结果返回到apache/lighttpd
3、fastcgi: apache/lighttpd的一个模块,虽然flup可以作为一个独立的web server使用,但是对于浏览器请求处理一般都交给 apache/lighttpd处理,然后由apache/lighttpd转发给flup处理,这样就需要一个东西来把apache/lighttpd跟flup联系起来,这个东西就是fastcgi,它通过环境变量以及socket将客户端请求的信息传送给flup并接收flup返回的结果
4、web.py: 应该说有了上面的东西你就可以开始编写你的web程序了,但是问题是你就要自己处理浏览器的输入输出,还有cookie、session、模板等各种各样的问题了,web.py的作用就是帮你把这些工作都做好了,它就是所谓的web framework,另外一个出名的是django,不过感觉太复杂了,web.py差不多就够用了
5、WSGI : 除了flup Server/Gateway外还有很多其他人的写的Server/Gateway, 这个时候就会出问题了,如果你在flup上写了一个程序,现在由于各种原因你要使用xdly了,这个时候你的程序也许就要做很多痛苦的修改才能使用 xdly server了,WSGI就是一个规范,他规范了flup这个服务应该怎么写,应该使用什么方式什么参数调用你写的程序(application)等,当然同时也规范你的程序应该怎么写了,这样的话,只要flup跟xdly都遵守WSGI的话,你的程序在两个上面都可以使用了,flup就是一个WSGI server

 

================== 我自己的理解 ================

1、wsgi是一种协议,python和webserver通讯的协议。

2、fastcgi是cgi的改进版,是webserver和程序通讯的协议,wsgi是在fastcgi的基础上定制化的(wsgi特为python服务)也就是说 nginx + fastcgi + wsgi + python才是完整的流程。其中fastcgi和wsgi都是独立实现的。比如python的flup就是wsgi的一种实现。

3、fastcgi是一种cgi,是web服务器和应用程序交互的标准,wsgi是在fastcgi的层次之上的东西

4、WSGI是python的接口规范,这个规范是针对WEB服务器和python应用(框架等)的交互的。FASTCGI则是两者底层的通信协议的规范。 

5、而uwsgi则是集成了fastcgi和wsgi的功能,简化了这一步

 

=================== uwsgi的部署 ====================

既然如此貌似uwsgi是最牛逼的,之前用nginx + tornado用到内伤了,这次研究下如果nginx + uwsgi + python 下边单开一个文章写部署

 

转载于:https://www.cnblogs.com/sky20081816/p/3309925.html

你可能感兴趣的文章
使用bat文件打开和关闭本地exe
查看>>
步步为营-85-注册信息验证
查看>>
redis——django使用管道实现事务操作
查看>>
git在terminal中自动补全
查看>>
ASP.NET 后台页面无法识别服务器控件ID
查看>>
js关于变量作为if条件的真假问题
查看>>
WPF/Silverlight为什么要使用Canvas.SetLeft()这样的方法?
查看>>
Wireshark-win64-2.4.3
查看>>
《Unity游戏开发实战》pdf
查看>>
jsday24
查看>>
(二十)WebGIS中图层树功能的设计和实现
查看>>
ORA-10456:cannot open standby database;media recovery session may be in process
查看>>
session服务器Nginx+Tomcat+Memcached集群Session共享
查看>>
javascript的时间描述图怎么写
查看>>
Maximum Gap 164
查看>>
Robot Framework Share 4
查看>>
【LeetCode】155. Min Stack
查看>>
【LeetCode】214. Shortest Palindrome
查看>>
现有资源和jsapi的融合一种方式
查看>>
UICollectionViewController的简单使用及一些注意点(json)
查看>>