感觉对WSGI协议理解的不是很透彻,求大神解释一波
应用服务器通过WSGI协议与WSGI服务器交互,WSGI服务器再与http服务器交互。
通过使用WSGI协议,应用服务器只要实现相应的接口(其实就是一个函数调用),应用服务器不必关心WSGI服务器的实现(flask可以跑在uwsgi或gunicorn上);同样地,一个WSGI服务器可以运行不同的应用服务器(uwsgi上边儿跑django,或者跑flask)。
看到WSGI协议产生的历史原因,也就不难理解它要解决的问题了。
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.9k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答500 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
uWSGI
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
要注意 WSGI / uwsgi / uWSGI 这三个概念的区分。
WSGI是一种通信协议。
uwsgi同WSGI一样是一种通信协议。
而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。
uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。
为什么有了uWSGI为什么还需要nginx?因为nginx具备优秀的静态内容处理能力,然后将动态内容转发给uWSGI服务器,这样可以达到很好的客户端响应。