Django部署時爲何要用 uWSGI與 Nginx? 以及 WSGI,uwsgi等協議


Django框架的服務器架構通常是 Nginx + uWSGI + Djangopython


(1)一些基本概念django


1 WSGI協議,uwsgi協議瀏覽器

WSGI協議(通信協議):Python用於Web開發的協議(用於處理Web服務器和應用程序(APP)的交互信息)

    (把http通信的過程抽象出來(請求數據,響應數據的封裝),開發者只負責處理中途的數據) 


    uwsgi協議(傳輸協議,速度很快):uWSGI程序實現的一個自有的協議(採用二進制來存儲數據,以前的協議都是使用字符串,因此在存儲空間和解析速度上,都更快)

注意:

    WSGI是一種通訊協議。
    
    uwsgi是一種線路協議而不是通訊協議,在此經常使用於在uWSGI服務器與其餘網絡服務器的數據通訊。

Web框架通常都自帶wsgi服務器 可是性能很差,只做測試用途。(django--wsgiref)緩存


2 wsgiref模塊(django 框架自帶)安全

python提供的,用於測試和學習的簡單的WSGI服務器模塊。服務器

這個模塊監聽8000端口,把Http請求,根據WSGI協議,轉換application函數中的environ參數,而後調用application函數。 
    wsgiref會把application函數提供的響應頭設置轉換爲HTTP協議的響應頭,把application的返回(return)做爲響應體,根據HTTP協議,生成響應,返回給瀏覽器。


3 uWSGI服務器網絡

uWSGI是一個Web服務器,它實現了WSGI協議、uwsgi、http等協議。


4 爲何要使用Nginx 來作負載均衡架構

Nginx

    1 安全(Nginx 做爲專業服務器,暴露在公網相對比較安全)

    2 能更好地處理靜態資源(一些http request header)

    3 Nginx也能夠緩存一些動態內容Nginx能夠更好地配合CDN

    4 能夠進行多臺機器的負載均衡

固然,若是訪問量不大,其實也不必加個Nginx,uWSGI足以勝任。app

相關文章
相關標籤/搜索