uwsgi和nginx的故事
要談uwsgi,當然要先談談wsgi,wsgi是理論家牛頓,uwsgi就是工程家特斯拉。
wsgi是縮寫,全稱為web server gateway interface,中文意思就是服務器的網關接口。它是一種通用的接口標準,使python 應用程序和服務器之間可以開始交互了,我更樂意把接口想成翻譯官。
uwsgi我們可以看成是一個軟件,應用程序。它幫助我們把wsgi協議給實現了,同時也實現了http協議,這樣我們可以不再關注底層網絡通信的實現,而把精力用在業務邏輯上面。
nginx和apache等都是常見的靜態服務器,主要用于處理靜態請求,而對于動態生成的html,則可以利用其它應用程序 實現,我這里是用的是python的框架django。而django與nginx服務器之間想要很好的通信的話,就必然需要使用wsgi協議了,我們可以在django框架里面按照wsgi協議的標準寫出接口和nginx通信,這是可以的,其實django內置了一個實現了wsgi接口的應用,但性能極差。無論多么復雜的Web應用程序,入口都是一個WSGI處理函數。HTTP請求的所有輸入信息都可以通過environ獲得,HTTP響應的輸出都可以通過start_response()加上函數返回值作為Body。有句話說的好:do not repeat youself,不要重復造輪子。已經有寫好的非常不錯的實現,那就是uwsgi,它也是一個服務器,可以說就是中間人的角色,左接nginx,右連django。
?
uwsgi又是怎樣實現這種連接的呢?
首先要講的是,uwsgi的并發能力很強,但是它處理靜態文件能力很不理想。所以一般靜態文件就交由nginx處理。uwsgi與nginx之間是通過套接字socket就行通信的,他們之間的交互可以理解為是兩個進程之間的交互,而它通過實現wsgi協議,可以與python寫的應用程序進行交互,這里也就是django框架。
轉載于:https://www.cnblogs.com/gj827/p/9776284.html
總結
以上是生活随笔為你收集整理的uwsgi和nginx的故事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浏览器跨域办法
- 下一篇: SHELL实战day12