Python Django的生產部署方式

2022-05-10 17:29:31 字數 2300 閱讀 5854

本地化部署的django有很大的侷限性,無法用於生產環境,比如無法抗住多併發,無法長時間的執行,容易造成網頁無響應的問題。所以如何將django部署到真正的生產環境中,讓其能夠真正的像正常的網頁一樣工作,是接下來需要討論的問題。

wsgi是一種web伺服器閘道器介面。它是乙個web伺服器(如nginx,uwsgi等伺服器)與web應用(如用flask框架寫的程式)通訊的一種規範。

uwsgi是一種線路協議而不是通訊協議,在此常用於在uwsgi伺服器與其他網路伺服器的資料通訊。

而uwsgi是實現了uwsgi和wsgi兩種協議的web伺服器。

uwsgi協議是乙個uwsgi伺服器自有的協議,它用於定義傳輸資訊的型別(type of information),每乙個uwsgi packet前4byte為傳輸資訊型別描述,它與wsgi相比是兩樣東西。

超快的效能

低記憶體占用(實測為apache2的mod_wsgi的一半左右)

高度可定製(記憶體大小限制,服務一定次數後重啟等)

uwsgi的安裝使用:

#

穩定版pip install uwsgi

#最新開發板

pip install

測試是否安裝成功:

#

test.py

def start_response(

'200 ok

', [('

content-type

','text/html

')])

return [b"

hello world

"]

在命令列中輸入

啟動測試程式,--http為通訊協議,8000為埠好 test.py為待測試檔案

使用uwsgi啟動django,記住路徑一定要在專案根目錄下,module的名字也必須跟專案名字一樣。

使用vim新建uwsgi.ini配置檔案,內容為:

#socket埠

socket = 127.0.0.1:8001

#專案根目錄

chdir = basedir#

django's wsgi file檔案目錄即django中wsgi.py的位置

wsgi-file =#

最大程序數

processes = 4

#最大執行緒數

threads = 2 #

監控程序

stats = 127.0.0.1:9191

#清除環境變數

vacuum = true

最後可以通過使用 uwsgi uwsgi.ini 指令執行uwsgi

可以看到其實uwsgi已經能夠實現網頁響應的功能,但是不如nginx穩定和主流,那麼我們接下來看看nginx的使用方法。

nginx的安裝:

sudo apt-get install nginx

sudo /etc/init.d/nginx start #

start nginx

#

project_name_nginx.conf

#將所有過來的請求**到指定位址

upstream django #

配置主機

server

location /static

#將所有的非media請求傳送到djangp中

location /

}

完成後使用 sudo ln -s ~/專案根目錄/mysite_nginx.conf /etc/nginx/sites-enabled/ 建立乙個軟連線,讓nginx能夠識別該配置

在djangp setting中末尾加一句程式: static_root = os.path.join(base_dir, "

static/

") 然後再使用 python manage.py collectstatic 命令將所有的靜態檔案收集起來。複製到上述static對應的檔案路徑中

最後同時啟動uwsgi(uwsgi uwsgi.ini)和nginx(/etc/init.d/nginx restart)就可以使python的django順利執行再nginx上了,可實現高併發的請求功能,穩定性比django高很多。

Python Django開發環境與生產環境的配置

開發環境與生產環境的使用不同的配置 配置檔案設定 import os 獲取環境數值 env profile os.getenv env 判斷是否為生產環境 if env profile production debug false 生產環境下關閉debug模式 else debug true 開發環...

python Django的簡單應用

建立django工程 django admin.py startproject yourprojectname 關係 工程下有多個應用。django的工作模式mtv模式 m 模型 model 負責業務物件和資料庫的關係對映 orm t 模板 template 負責如何把頁面展示給使用者 html v...

python Django安裝教程

2.解壓到桌面 3 開啟cmd cd到這個目錄執行 python setup.py install命令即可安裝,安裝成功提示 installed d python27 lib site packages pytz 2018.5 py2.7.egg finished processing depend...