uwsgi、wsgi和nginx的區別和關系


區分uWSGI和WSGI:

  在python web開發中,經常使用uwsgi配合nginx部署一個web框架,如Django或者flask,框架和服務器之間要符合wsgi協議

web服務器和web框架
  web服務器用來接收客戶端請求,建立連接,轉發響應,至於轉發的內容,交由web框架來處理,即Django或者flask處理業務邏輯,如查詢數據庫,生成實時信息。Nginx就是一個web服務器,django或者flask就是web框架

uWSGI和WSGI:
  如何做到任意一個web服務器,都能搭配任意一個web框架,這就需要WSGI協議,只要服務器和web框架都滿足WSGI協議,他們就能相互搭配。所以WSGI只是一種協議,一種約定,一種標准,就像U盤的插頭形狀,和電腦USB接口的形狀一樣,他們都滿足這一種標准,所以他們能建立聯系,實現對文件的操作。而uWSGI就是滿足WSGI協議的一種服務器,用來接收客戶端的請求,轉發響應的程序。
  實際上,uWSGI服務器 + Django框架,就可以實現網站的功能了,但一旦客戶端訪問量過大,客戶端請求連接就需要長時間的等待,這種模式就無法滿足需求了,分布式服務器此時應運而生,而nginx就是分布式服務器的一大利器,我們可以多用幾台服務器來分別處理請求,nginx就相當於管家一樣分配客戶端請求連接和web服務器,這就是用nginx來實現反向代理,及代理服務器。

nginx和uWSGI服務器之間是如何配合工作的?

  首先瀏覽器發起http請求到nginx服務器,nginx根據接收的請求包,進行url分析,判斷訪問的資源類型,如果是靜態資源,直接讀取靜態資源返回給瀏覽器,如果請求的是動態資源就轉交給uwsgi服務器,uwsgi服務器根據自身的WSGI協議,找到對應的Django框架,Django框架下的應用進行邏輯處理,將返回值發送到uwsgi服務器,uwsgi服務器再返回給nginx,最后nginx將返回值返回給瀏覽器進行渲染顯示給用戶


免責聲明!

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



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