Django框架的服務器架構一般是 Nginx + uWSGI + Django
(1)一些基本概念
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足以勝任。
