日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Django + Uwsgi + Nginx 的生产环境部署项目知识点

發布時間:2025/3/21 81 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django + Uwsgi + Nginx 的生产环境部署项目知识点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是WSGI:

  • WSGI是一種python專用的web協議 和http類似

  • WSGI是一種規范,它定義了使用python編寫的web app(django)與web server(uWSGI)之間接口格式,實現web app與web server間的解耦。

  • WSGI 沒有官方的實現, 因為WSGI更像一個協議. 只要遵照這些協議,WSGI應用(Application)都可以在任何服務器(Server)上運行

  • WSGI實質:WSGI是一種描述web服務器(如nginx,uWSGI等服務器)如何與web應用程序(如用Django、Flask框架寫的程序)通信的規范、協議。

Web協議介紹

為什么需要web協議:

  • 不同的框架有不同的開發方式,但是無論如何,開發出的應用程序都要和服務器程序配合,才能為用戶提供服務。
  • 這樣,服務器程序就需要為不同的框架提供不同的支持,只有支持它的服務器才能被開發出的應用使用,顯然這是不可行的。
  • web協議本質:就是定義了Web服務器和Web應用程序或框架之間的一種簡單而通用的接口規范。

Web協議出現順序: CGI -> FCGI -> WSGI -> uwsgi

  • CGI: 最早的協議
  • FCGI: 比CGI快
  • WSGI: Python專用的協議
  • uwsgi: 比FCGI和WSGI都快,是uWSGI項目自有的協議,主要特征是采用二進制來存儲數據,
  • 之前的協議都是使用字符串,所以在存儲空間和解析速度上,都優于字符串型協議.

uWSGI

  • 什么是uWSGI(web服務器 和nginx類似):
    uWSGI是一個全功能的HTTP服務器,實現了WSGI協議、uwsgi協議、http協議等。
  • uWSGI作用:
    它要做的就是把HTTP協議轉化成語言支持的網絡協議,比如把HTTP協議轉化成WSGI協議,讓Python可以直接使用。
  • uWSGI特點:
    輕量級,易部署,單節點服務器的簡易部署

注:
如果架構是Nginx+uWSGI+APP,uWSGI是一個中間件
如果架構是uWSGI+APP,uWSGI是一個服務器

Nginx

Nginx是一個Web服務器,其中的HTTP服務器功能和uWSGI功能很類似

Nginx的作用:

  • 反向代理,可以攔截一些web攻擊,保護后端的web服務器
  • 負載均衡,根據輪詢算法,分配請求到多節點web服務器
  • 緩存靜態資源,加快訪問速度,釋放web服務器的內存占用,專項專用

nginx,uWSGI,WSGI的區別

nginx和uWSGI區別

  • nginx和uWSGI都是web服務器,都可以用來部署django等服務
  • nginx:處理靜態資源能力非常強,還可以提供 負載均衡、反向代理、攻擊攔截等
  • uWSGI:單點部署,容易部署,性能差一些,可以支持的web協議多

uWSGI 和 uwsgi區別

  • uWSGI:是一個web服務器
  • uwsgi:是一種web協議

WSGI和uwsgi區別

  • uwsgi: 也是一種web協議,傳輸快(二進制存儲,其他web協議都是字符串存儲)
  • WSGI: python專業的web協議

django+nginx+uwsgi請求處理過程

流程圖

請求處理整體流程   
nginx接收到瀏覽器發送過來的http請求,將包進行解析,分析url

靜態文件請求:
就直接訪問用戶給nginx配置的靜態文件目錄,直接返回用戶請求的靜態文件

動態接口請求:
那么nginx就將請求轉發給uWSGI,最后到達django處理

各模塊作用

  • nginx:是對外的服務器,外部瀏覽器通過url訪問nginx,nginx主要處理靜態請求
  • uWSGI:是對內的服務器,主要用來處理動態請求
  • uwsgi:是一種web協議,接收到請求之后將包進行處理,處理成wsgi可以接受的格式,并發給wsgi
  • wsgi:是python專用的web協議,根據請求調用應用程序(django)的某個文件,某個文件的某個函數
  • django:是真正干活的,查詢數據等資源,把處理的結果再次返回給WSGI, WSGI 將返回值進行打包,打包成uwsgi能夠接收的格式
  • uwsgi接收wsgi發送的請求,并轉發給nginx,nginx最終將返回值返回給瀏覽器

為什么使用nginx放在最前面,而不是發送給uWSGI

  • 如果架構是Nginx+uWSGI+APP,uWSGI是一個中間件
  • 如果架構是uWSGI+APP,uWSGI是一個服務器
  • uWSGI性能比nginx差一些
  • nginx還提供反向代理、負載均衡、安全攔截等
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Django + Uwsgi + Nginx 的生产环境部署项目知识点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。