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