uWSGI+django+nginx的工作原理流程
相關資料
wsgi:一種實現python解析的通用介面標準/協議,是一種通用的介面標準或者介面協議,實現了python web程式與伺服器之間互動的通用性。 利用它,web.py或bottle或者django等等的python web開發框架,就可以輕鬆地部署在不同的web server上了; uwsgi:同WSGI一樣是一種通訊協議 uwsgi協議是一個uWSGI伺服器自有的協議,它用於定義傳輸資訊的型別,它與WSGI相比是兩樣東西。 uWSGI :一種python web server或稱為Server/Gateway uWSGI類似tornadoweb或者flup,是一種python web server,uWSGI是實現了uwsgi和WSGI兩種協議的Web伺服器,負責響應python 的web請求。 uWSGI實現了wsgi協議、uwsgi協議、http等協議。 Nginx中HttpUwsgiModule的作用是與uWSGI伺服器進行交換。
nginx/uwsgi/django互動流程:
1.首先客戶端請求服務資源, 2.nginx作為直接對外的服務介面,接收到客戶端傳送過來的http請求,會解包、分析, 3.如果是靜態檔案請求就根據nginx配置的靜態檔案目錄,返回請求的資源, 4.如果是動態的請求,nginx就通過配置檔案,將請求傳遞給uWSGI;uWSGI 將接收到的包進行處理,並轉發給wsgi, 5.wsgi根據請求呼叫django工程的某個檔案或函式,處理完後django將返回值交給wsgi, 6.wsgi將返回值進行打包,轉發給uWSGI, 7.uWSGI接收後轉發給nginx,nginx最終將返回值返回給客戶端(如瀏覽器)。 *注:不同的元件之間傳遞資訊涉及到資料格式和協議的轉換