方案: nginx + uWSGI 提高 Django的並發性
1. uWSGI :
uWSGI是一個web服務器,實現了WSGI
協議、uwsgi
協議、http
協議等。
uWSGI
的主要特點是:
- 超快的性能
- 低內存占用
- 多
app
管理 - 詳盡的日志功能(可以用來分析
app
的性能和瓶頸) - 高度可定制(內存大小限制,服務一定次數后重啟等)
uWSGI
服務器自己實現了基於uwsgi
協議的server
部分,我們只需要在uwsgi
的配置文件中指定application
的地址,uWSGI
就能直接和應用框架中的WSGI application
通信。
2. nginx :
Nginx 是一個高性能的負載均衡HTTP和反向代理服務器,Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件代理服務器。
特點是占有內存少,並發能力強。
結構與擴展: 一個主進程和多個工作進程。工作進程是 單線程 的,且不需要特殊授權即可運行;
3. nginx和uWSGI的關系:
nginx相當於是服務器,負責接收請求
uwsgi是服務器和服務端應用程序的通信協議,規定了怎么把請求轉發給應用程序和返回
2個基本概念:
服務器(接收請求),應用程序(處理請求並返回)
通信過程:
客戶端發送一個http請求,被nginx服務器接收,nginx服務器將請求轉發給uwsgi,uwsgi將請求轉發給實現uwsgi協議的應用程序(flask,gunicorn等等)
nginx與uWSGI的安裝與配置詳見https://blog.csdn.net/yinhangxitong36/article/details/79821851