1.概念
WSGI / uwsgi / uWSGI 這三個概念的區分:
WSGI 是一種通信協議,也叫做 Web 服務器網關接口
uwsgi 是一種線路協議而不是通信協議,在此常用於在 uWSGI 服務器與其他網絡服務器的數據通信。
uWSGI 是實現了 uwsgi 和 WSGI 兩種協議的 Web 服務器。
nginx(開源的高性能HTTP服務器和反向代理):
作爲 web 服務器,它處理靜態文件和索引文件效果非常高,配合uWSGI服務器會更加安全
它的設計非常注重效率,最大支持 5 萬個併發連接,但只佔用很少的內存空間
穩定性高,配置簡潔
強大的反向代理和負載均衡功能,平衡集羣中各個服務器的負載壓力應用
nginx 和 uWISG 服務器之間配合工作:
首先瀏覽器發起 http 請求到 nginx 服務器,Nginx 根據接收到請求包,進行 url 分析,判斷訪問的資源類型:如果是靜態資源,直接讀取靜態資源返回給瀏覽器。如果請求的是動態資源就轉交給 uwsgi服務器,uwsgi 服務器根據自身的 uwsgi 和 WSGI 協議,找到對應的 Django 框架,Django 框架下的應用進行邏輯處理後,將返回值發送到 uwsgi 服務器,然後 uwsgi 服務器再返回給 nginx,最後 nginx將返回值返回給瀏覽器進行渲染顯示給用戶。