cgi、wsgi、uwsgi 与 uWSGI
生活随笔
收集整理的這篇文章主要介紹了
cgi、wsgi、uwsgi 与 uWSGI
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CGI(Common Gateway Inteface)
- 是外部應用程序與Web服務器之間的接口標準(通用網關接口)
- linux下python比較常見的服務端結構:
- 網站項目結構圖
- FastCGI:
- CGI的一個擴展, 提升了性能,廢除了 CGI fork-and-execute (來一個請求 fork 一個新進程處理,處理完再把進程 kill 掉)的工作方式,轉而使用一種長生存期的方法,減少了進程消耗,提升了性能。
- 這里 FastCGI 就應用于前端 server(nginx)與后端 server(uWSGI)的通信中,制定規范等等,讓前后端服務器可以順利理解雙方都在說什么(當然 uWSGI 本身并不用 FastCGI, 它有另外的協議)
WSGI(Python Web Server GateWay Interface)
- WSGI 的官方定義是,the Python Web Server Gateway Interface。從名字就可以看出來,這東西是一個Gateway,也就是網關。網關的作用就是在協議之間進行轉換。
- WSGI 是為 Python 語言定義的 Web 服務器和 Web 應用程序或框架之間的一種簡單而通用的接口。也可以認為WSGI是一種通信協議。自從 WSGI 被開發出來以后,許多其它語言中也出現了類似接口。
- WSGI是Web 服務器(uWSGI)與 Web 應用程序或應用框架(Django)之間的一種低級別的接口,以提升可移植 Web 應用開發的共同點。WSGI 是基于現存的 CGI 標準而設計的。
uWSGI:
- uWSGI是一個Web服務器,它實現了WSGI協議、uwsgi、http等協議。用于接收前端服務器轉發的動態請求并處理后發給 web 應用程序。Nginx中HttpUwsgiModule的作用是與uWSGI服務器進行交換。
uwsgi:
- uwsgi是服務器和服務端應用程序的一種協議,規定了怎么把請求轉發給應用程序和返回; uwsgi是一種線路協議而不是通信協議,在此常用于在uWSGI服務器與其他網絡服務器的數據通信。
簡單來講,這些名詞的關系就是下圖:
轉載于:https://www.cnblogs.com/Godisgirl/p/11119142.html
總結
以上是生活随笔為你收集整理的cgi、wsgi、uwsgi 与 uWSGI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CF623E Transforming
- 下一篇: 区间素数个数查询