使用runserver可以使我們的django項目很便捷的在本地運行起來,但這只能在局域網內訪問,如果在生產環境部署django,就要多考慮一些問題了。比如靜態文件處理,安全,效率等等,本篇文章總結歸納了一下基于uwsgi+Nginx下django項目生產環境的部署
準備條件:
1.確保有一個能夠用runserver正常啟動的django項目
2.項目已上傳到linux
3.linux上已部署好python環境,且已安裝好項目所需的模塊
安裝uwsgi
uwsgi是python的一個模塊,安裝uwsgi只需簡單的pip命令就可以了
pip3 install uwsgi
基于uwsgi+django的實現
1.使用命令啟動uwsgi
第一步:進入django項目
第二步:命令測試啟動
uwsgi --http 192.168.31.123:8080 --file teacher/wsgi.py --static-map=/static=static
參數說明:
--http 這個就和runserver一樣指定IP 端口
--file 這個文件就里有一個反射,如果你在調用他的時候沒有指定Web Server就使用默認的
-- static 做一個映射,指定靜態文件
此時,訪問http://192.168.2.108:8080/,如圖所示,表示項目啟動成功
2.使用uwsgi配置文件啟動django項目
第一步:在django項目同級目錄創建script目錄,用于存放配置腳本等等
第二步:進入/script目錄,創建一個uwsgi.ini文件
編輯uwsgi.ini文件內容如下:
# uwsig使用配置文件啟動[uwsgi]# 項目目錄chdir=/opt/proj/teacher/# 指定項目的applicationmodule=teacher.wsgi:application# 指定sock的文件路徑 socket=/opt/proj/script/uwsgi.sock# 進程個數 workers=5pidfile=/opt/proj/script/uwsgi.pid# 指定IP端口 http=192.168.2.108:8080# 指定靜態文件static-map=/static=/opt/proj/teacher/static# 啟動uwsgi的用戶名和用戶組uid=rootgid=root# 啟用主進程master=true# 自動移除unix Socket和pid文件當服務停止的時候vacuum=true# 序列化接受的內容,如果可能的話thunder-lock=true# 啟用線程enable-threads=true# 設置自中斷時間harakiri=30# 設置緩沖post-buffering=4096# 設置日志目錄daemonize=/opt/proj/script/uwsgi.log
啟動項目:
訪問192.168.2.108:8080,啟動成功
新聞熱點
疑難解答