自學java需要多久 使用了Gunicorn或者uWSGI,為什么還需要Nginx?
使用了Gunicorn或者uWSGI,為什么還需要Nginx?Flash,Django自己的web服務器是為開發(fā)而設計的,而不是為生產(chǎn)而設計的。它們都是web框架,而不是web服務器。它們自己的服務器
使用了Gunicorn或者uWSGI,為什么還需要Nginx?
Flash,Django自己的web服務器是為開發(fā)而設計的,而不是為生產(chǎn)而設計的。它們都是web框架,而不是web服務器。它們自己的服務器只能是單個進程。例如,gunicorn是一種預工作模式。每次從nginx發(fā)送請求時,它都會派生一個進程來處理請求并緩沖相關(guān)數(shù)據(jù)。WSGI服務器是專門為生產(chǎn)環(huán)境開發(fā)的,可以對其進行更多配置以處理更復雜的請求情況。在性能和穩(wěn)定性方面,它們更好。
使用了Gunicorn或者uWSGI,為什么還需要Nginx?
1. 靜態(tài)文件處理:nginx會更高效
2。連接維護,減少后端壓力,從而提高性能
3。安全過濾,可以直接在nginx前端做安全防護過濾
uwsgi可以用nginx做域名解析和負載均衡。Uwsgi不使用WSGI協(xié)議或fcgi協(xié)議,而是創(chuàng)建一個Uwsgi協(xié)議。據(jù)說這個協(xié)議可以用于域名解析和負載均衡,比fcgi快10倍左右。uwsgi的主要特點是:超高速性能。低內(nèi)存消耗(以apache2的mod來衡量)大約是WSGI的一半)。多應用管理。詳細日志功能(可用于分析應用程序性能和瓶頸)。高度可定制(內(nèi)存大小限制、特定次數(shù)后重新啟動服務等)。
nginx為什么要搭配uwsgi?
檢查uwsgi日志
]首先確認nginx服務正常運行,然后執(zhí)行Python程序(不使用uwsgi和nginx)以確保Python程序正常運行
最后檢查uwsgi服務是否正常,并檢查相應的配置(如*)。XML或*。INI)
nginx為什么要搭配uwsgi?
因為Django需要重新運行,所以uwsgi需要重新加載代碼內(nèi)容
像大多數(shù)服務一樣,uwsgi不會提到動態(tài)加載代碼的功能
所以我們只能重新加載代碼來編譯和運行
uwsgi
是一個類似WSGI的協(xié)議。Uwsgi服務器是一個使用Uwsgi協(xié)議的web服務器
2。Uwsgi
實現(xiàn)Uwsgi和WSGI協(xié)議。請注意,uwsgi本質(zhì)上也是一個web服務器,它位于上述三層結(jié)構(gòu)的web服務器層中。
3. CGI
通用網(wǎng)關(guān)接口,不限于Python語言,定義web服務器如何向客戶端提供動態(tài)內(nèi)容。例如,它指定客戶機如何將參數(shù)傳遞給web服務器、web服務器如何將參數(shù)傳遞給web應用程序、web應用程序如何將其輸出發(fā)送給客戶機等等。