一文了解WSGI,uWSGI,(u)wsgi的區別,有圖爲伴

Preliminary

  • 網關的作用就是在協議之間進行轉換。 uWSGI是一個Web服務器,它實現了WSGI協議、uwsgi、http等協議。 Nginx中
  • HttpUwsgiModule的作用是與uWSGI服務器進行交互。
  • wsgi server OR wsgi application均是實現了wsgi 協議的server OR application
  • uwsgi協議<服務器和服務端應用程序的通信協議,規定了怎麼把請求轉發給應用程序和返回>是一個uWSGI服務器自有的協議,它用於定義傳輸信息的類型(type
    of information),每一個uwsgi packet前4byte爲傳輸信息類型描述,它與WSGI相比是兩樣東西。
  • Gunicorn 是實現WSGI和HTTP協議的服務器

wsgi server 和wsgi application,WSGI之間的互動

wsgi server (比如uWSGI) 要和 wsgi application(比如django )交互,uWSGI需要將過來的請求轉給wsgi application處理,那麼uWSGI 和 wsgi application的交互和調用就需要一個統一的規範,這個規範就是WSGI WSGI(Web Server Gateway Interface)

WSGI<基於現存的 CGI 標準設計>,全稱 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是爲 Python 語言定義的 Web 服務器和 Web 應用程序或框架之間的一種簡單而通用的接口。In other words, 它是一個Web服務器(如nginx,uWSGI等服務器)與web應用(如用Flask框架寫的程序)通信的一種規範

WSGI / uwsgi / uWSGI區分

WSGI是一種通信協議。
uwsgi是一種線路協議 而不是通信協議,在此常用於在uWSGI服務器與其他網絡服務器的數據通信。
而uWSGI是實現了uwsgi和WSGI兩種協議的Web服務器。

FastCgi協議, uwsgi協議, http協議有什麼用?

nginx 和 uWSGI交互就必須使用同一個協議,而上面說了uWSGI支持FastCgi,uwsgi,http協議,這些都是nginx支持的協議,只要大家溝通好使用哪個協議,就可以正常運行了。

餿主意

全小寫是線路協議。eg. <u>wsgi
全大寫是通信協議。eg. WSGI
第一個字母小寫,其餘全大寫是web 服務器。 eg.uWSGI,實現了uwsgi 和WSGI協議

圖解

在這裏插入圖片描述
在這裏插入圖片描述

巨人的肩膀

uWSGI、WSGI和uwsgi - Dus - 博客園

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章