uwsgi 為什么還要nginx 如何理解Nginx,uWSGI和Flask之間的關(guān)系?
如何理解Nginx,uWSGI和Flask之間的關(guān)系?Uwsgi是一種類似WSGI的協(xié)議。Uwsgi服務(wù)器使用Uwsgi協(xié)議2。Uwsgi實現(xiàn)Uwsgi和WSGI協(xié)議的web服務(wù)器。請注意,uwsgi
如何理解Nginx,uWSGI和Flask之間的關(guān)系?
Uwsgi
是一種類似WSGI的協(xié)議。Uwsgi服務(wù)器使用Uwsgi協(xié)議
2。Uwsgi
實現(xiàn)Uwsgi和WSGI協(xié)議的web服務(wù)器。請注意,uwsgi本質(zhì)上也是一個web服務(wù)器,它位于上述三層結(jié)構(gòu)的web服務(wù)器層中。
3. CGI
通用網(wǎng)關(guān)接口,不限于Python語言,定義web服務(wù)器如何向客戶端提供動態(tài)內(nèi)容。例如,它指定客戶機如何將參數(shù)傳遞給web服務(wù)器、web服務(wù)器如何將參數(shù)傳遞給web應(yīng)用程序、web應(yīng)用程序如何將其輸出發(fā)送給客戶機等等。
學(xué)習(xí)flask,為什么導(dǎo)入flask-login第三方包導(dǎo)入不進去???
首先,您必須了解與flash類似的MVC(或MTC)的基本操作機制。-對于flashview,您需要知道WSGI協(xié)議(如果您不知道,請自己用Google搜索)。
底層(邏輯層)的Httputils(flag uses Werkzeug)解析客戶端的httprequest,并將它們構(gòu)建到WSGI環(huán)境中(包括請求和其他信息)。
WSGI
server in process request的過程是:根據(jù)WSGI協(xié)議構(gòu)建一個環(huán)境,并將其傳遞到flaskapp
實例中(這是由flaskapp框架實現(xiàn)的wsgiapp)。Flaskapp
實例使用這個環(huán)境和它自己的“啟動”響應(yīng)方法(這也是uwsgi協(xié)議規(guī)范)完成請求處理和響應(yīng)。
使用了Gunicorn或者uWSGI,為什么還需要Nginx?
Flash,Django自己的web服務(wù)器是為開發(fā)而設(shè)計的,而不是為生產(chǎn)而設(shè)計的。它們都是web框架,而不是web服務(wù)器。它們自己的服務(wù)器只能是單個進程。例如,gunicorn是一種預(yù)工作模式。每次從nginx發(fā)送請求時,它都會派生一個進程來處理請求并緩沖相關(guān)數(shù)據(jù)。WSGI服務(wù)器是專門為生產(chǎn)環(huán)境開發(fā)的,可以對其進行更多配置以處理更復(fù)雜的請求情況。在性能和穩(wěn)定性方面,它們更好。