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