提高Django高並發性的解決方案


方案: 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM