WSGI协议应该怎么理解

感觉对WSGI协议理解的不是很透彻,求大神解释一波

阅读 3.8k
3 个回答

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服务器,这样可以达到很好的客户端响应。

应用服务器通过WSGI协议与WSGI服务器交互,WSGI服务器再与http服务器交互。
通过使用WSGI协议,应用服务器只要实现相应的接口(其实就是一个函数调用),应用服务器不必关心WSGI服务器的实现(flask可以跑在uwsgi或gunicorn上);同样地,一个WSGI服务器可以运行不同的应用服务器(uwsgi上边儿跑django,或者跑flask)。
看到WSGI协议产生的历史原因,也就不难理解它要解决的问题了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题