nginx 和uwsgi的區別與作用


在介紹nginx和uwsgi的區別和作用之前我們先介紹一下幾個概念
1.WSGI
WSGI的全稱是Web Server Gateway Interface(Web服務器網關接口),它不是服務器、python模塊、框架、API或者任何軟件,只是一種描述web服務器(如nginx,uWSGI等服務器)如何與web應用程序(如用Django、Flask框架寫的程序)通信的規范、協議。
server和application的規范在PEP3333中有具體描述,要實現WSGI協議,必須同時實現web server和web application,當前運行在WSGI協議之上的web框架有,Flask, Django。
image

2.uWSGI
uWSGI是一個全功能的HTTP服務器,實現了WSGI協議、uwsgi協議、http協議等。它要做的就是把HTTP協議轉化成語言支持的網絡協議。比如把HTTP協議轉化成WSGI協議,讓Python可以直接使用。

3.uwsgi
與WSGI一樣,是uWSGI服務器的獨占通信協議,用於定義傳輸信息的類型。每一個uwsgi packet前4byte為傳輸信息類型的描述,與WSGI協議是兩種東西,據說該協議是fcgi協議的10倍快。

4.Nginx
Nginx是一個Web服務器其中的HTTP服務器功能和uWSGI功能很類似,但是Nginx還可以用作更多用途,比如最常用的反向代理功能。

備注:
1.使用的代理一共有兩個,nginx和uwsgi,先說明一下,如果不用nginx一樣可以訪問web項目,使用nginx的目的是為了安全和負載均衡。配置了nginx做前端代理,uwsgi作后端代理的服務器(這里所說的前后端都是相對的位置,並無實際含義),在處理來自Internet的請求時,要先經過nginx的處理,nginx把請求再交給uwsgi,經過uwsgi才能訪問到項目本身。

2.沒有nginx而只有uwsgi的服務器,則是Internet請求直接由uwsgi處理,並反饋到web項目中。nginx可以實現安全過濾,防DDOS等保護安全的操作,並且如果配置了多台服務器,nginx可以保證服務器的負載相對均衡。
而uwsgi則是一個web服務器,實現了WSGI協議(Web Server Gateway Interface),http協議等,它可以接收和處理請求,發出響應等。所以只用uwsgi也是可以的。

nginx的作用:
1.反向代理,可以攔截一些web攻擊,保護后端的web服務器
2.負載均衡,根據輪詢算法,分配請求到多節點web服務器
3.緩存靜態資源,加快訪問速度,釋放web服務器的內存占用,專項專用

uWSGI的適用:
1.單節點服務器的簡易部署
2.輕量級,好部署
image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM