1、uWSGI
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
要注意 WSGI / uwsgi / uWSGI 这三个概念的区分。
- WSGI是一种通信协议,Flask,webpy,Django、CherryPy等等都自带WSGI,不过性能都不好。Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)
1、WSGI是一套接口标准协议 - UWSGI同WSGI一样是一种通信协议
- 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器
为什么有了uWSGI为什么还需要nginx?
因为nginx具备优秀的静态内容处理能力,然后将动态内容转发给uWSGI服务器,这样可以达到很好的客户端响应。
统一标准。
说到这,我们基本理清了 uWSGI 在 web服务器与 web框架之间作用:uWSGI 就像一条纽带,将 web服务器与 web框架连接起来。Nginx 属于一种高并发能力 web服务器,Flask属于一种 web框架,因此,uWSGI 与 Nginx、Flask 的作用就不明而喻了
Nginx,uWSGI,Flask 之间的对话
- Nginx:Hey,uWSGI,我刚收到了一个请求,我需要你作些准备,然后由Flask来处理这个请求。
- uWSGI:OK,Nginx。我会设置好环境变量,然后将这个请求传递给Flask处理。
- Flask:Thanks uWSGI!给我一些时间,我将会把请求的响应返回给你。
- uWSGI:Alright,那我等你。
- Flask:Okay,我完成了,这里是请求的响应结果,请求把结果传递给Nginx。
- uWSGI:Good job!Nginx,这里是响应结果,已经按照要求给你传递回来了。
- Nginx:Cool,我收到了,我把响应结果返回给客户端。大家合作愉快