以前直接用flask写后台,直接写完后用app.run()来启动,以为后台就是这样的。后面需要用到nginx+uwsgi来部署的时候才发现原来还有web服务器与web应用服务器一说。
WSGI
WSGI(Python Web Server Gateway Interface)协议,他规定了一种web服务器与web应用程序/框架之间的推荐标准接口,以确保Web应用程序在不同Web服务器之间具有可移植性。uwsgi
uwsgi:与WSGI一样是一种通信协议,是uWSGI服务器的独占协议,用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型的描述,与WSGI协议是两种东西,据说该协议是fcgi协议的10倍快。uWSGI
uWSGI是用c来编写的,实现了自由的uwsgi协议的Web服务器。Web服务器与应用服务器的区别
1.Web服务器负责处理HTTP协议,应用服务器既可以处理HTTP内容,也能处理其他协议,RPC。2.Web服务器用于处理静态页面的内容,对于脚本语言产生的动态内容,他通过WSGI或者uwsgi接口交给应用服务器来处理。
3.一般应用服务器都集成了Web服务器,主要是为了调试方便,处于性能和稳定性的考虑,应用服务器不能在生产环境中使用。
WSGI server和WSGI application
WSGI server负责从客户端接收请求,将request转发给application,将application返回的response返回给客户端;WSGI application接收由server转发的request,处理请求,并将处理结果返回给server。而这中间的连接就是依靠uwsgi和WSGI之类的协议等.
剩下的后面补充