钩子:
要注意 WSGI / uwsgi / uWSGI 这三个概念的区分:
1. WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Django,Flask框架写的程序)通信的一种规范。
2. uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。
3. 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。
4. uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。
nginx主要负责处理静态文件,当客户频繁访问静态文件的时候就会影响后端服务器的响应,这里就可以考虑使用nginx作为静态文件的缓存服务器,之前被客户访问过的静态文件就可以由nginx服务器直接返回给客户,从而减少对后端服务器的http请求,达到提高整体性能的目的。另外nginx 还可以动态请求转发以及结果的回复。
WSGI是python定义的Web服务器网管接口(Web Service Gateway Interface),它定义了web服务器如何跟web框架(如Django)交互规则,而uWSGI则是WSGI规则下的一个实现,简单来说,WSGI是一套协议,而uWSGI则是协议的实现。在这里,uWSGI扮演了nginx与Django之间通信的通道。
client <-> nginx <-> uWSGI <-> Django