1. 程式人生 > >淺談uWSGI和Nginx

淺談uWSGI和Nginx

前一篇說到了部署Django+uWIGS+Nginx環境,為什麼要部署uWSGI和Nginx,以及uWSGI和Nginx是什麼進行一番學習,在這裡總結一下。

1.WIGS(Web Server Gateway Interface)伺服器閘道器介面

是Python應用程式或框架和Web伺服器之間的一種介面,已經被廣泛接受, 它已基本達成它的可移植性方面的目標。
WSGI 沒有官方的實現, 因為WSGI更像一個協議. 只要遵照這些協議,WSGI應用(Application)都可以在任何伺服器(Server)上執行, 反之亦然。
WSGI標準在 PEP 333 中定義並被許多框架實現,其中包括現廣泛使用的django框架。

所以說WIGS是一種標準

2.uWIGS

可以看作是一個應用程式,幫助我們實現WSGI協議,Http協議,這樣我們可以不再關注網路通訊的底層實現,將精力更多放在處理HTTP請求資料,返回HTML。利用uWIGS可以是我們的web應用得到更強的併發能力,uWIGS也可以返回靜態檔案(css,js,img…),但是很笨拙,一般靜態檔案都交由Nginx進行傳輸,所以配置中一般不配置static-map,如果直接由uWIGS接受HTTP請求則需要設定http:xxxx,如果只需要與反向代理伺服器進行互動則只需要接受socket,uWIGS與Nginx互動相當於兩個程序間互動,一般使用的是.sock檔案或者指定埠接受socket。指定埠時再使用瀏覽器訪問相應埠,uWIGS會提示skip,跳過該HTTP請求。

3.代理伺服器(Proxy Server)

是一種特殊的網路服務,允許一個網路終端(一般為客戶端)通過這個服務與另一個網路終端(一般為伺服器)進行非直接的連線。一些閘道器、路由器等網路裝置具備網路代理功能。一般認為代理服務有利於保障網路終端的隱私或安全,防止攻擊。
這個就是正向的代理伺服器,它是代理網路使用者去訪問獲得網路資訊,主要起到的是安全作用,因為有隱藏真實ip,突破訪問限制的功能。其中最常見的就是VPN了。
代理伺服器的工作模式

4.反向代理伺服器(Reverse Proxy)

反向代理,故名思意就是將代理伺服器做出逆轉,它主要的功能是代理伺服器接收客戶端發來的Http請求,轉發到內部網路伺服器,並返回Response給客戶端。
反向代理的作用:

  1. 保證內網安全,可以使用反向代理伺服器提供的WAF功能,阻止web攻擊。
  2. 負載均衡,通過反向代理伺服器來優化網站的負載
  3. 快取靜態資源,加快訪問速度

    反向代理模式

負載平衡

5.Nginx(engine x)

Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強。

它具有反向代理伺服器的所有特點,並且配置簡單,支援對大於1kb的檔案進行壓縮,靜態檔案快取,可以大大提高訪問效率。Nginx接受來自客戶端的Http請求傳送給uWSGI,uWSGI處理請求並將關鍵資訊傳遞給web應用(django,flask等),應用返回Response經由uWSGI傳送給Nginx,Nginx再發送給客戶端。
這裡寫圖片描述