Python Web Server Gateway Interface(python web服务器网关接口),实际上就是一种协议,我们的应用(Django,Flask)实现了WSGI,就可以配合实现了WSGI的服务器(uWSGI,gunicorn)来工作了。
在这种结构里,uWSGI作为服务器,它用到了HTTP协议以及wsgi协议,flask应用作为application,实现了wsgi协议。当有客户端发来请求,uWSGI接受请求,调用flask app得到响应,之后响应给客户端。
通常来说,Flask等Web框架会自己附带一个wsgi服务器(这就是flask应用可以直接启动的原因),但是这只是在开发阶段用到的,在生产环境是不够用的,所以用到了uwsgi这个性能高的服务器。
这种结构里,uwsgi作为中间件,它用到了uwsgi协议(与nginx通信),wsgi协议(调用flask app)。当有客户端发来请求,nginx先做处理,然后再到uwsgi服务器,再到flask app,然后再一层层返回给客户端。
多一层反代有什么好处?
uWSGI是一个实现了wsgi,uwsgi,http协议的服务器。
它有两种模式,http模式对应上面的两层结构,socket对应上面的三层结构。
参考链接:https://blog.csdn.net/baidu_35085676/article/details/80184874
原文:https://www.cnblogs.com/Xuuuuuu/p/14288757.html