Django下nginx部署及程序守護

2021-09-01 12:31:12 字數 2756 閱讀 1838

博主在虛擬環境下部署的

想用python3 跑程式那就 pip3 install gunicorn

​ 在你的工程下邊 新建乙個gunicorn的配置檔案目錄在該目錄下 新建乙個gunicorn的配置檔案 內容如下

command = '/home/ubuntu/.local/bin/gunicorn' #命令(絕對路徑)

pythonpath = '/home/ubuntu/user/專案**' #這個路徑是你django專案的路徑 這個路徑下邊要包含manage.py

bind = '127.0.0.1:12356' #你服務執行的埠

#bind = '0.0.0.0:12356' 看自己

workers = 2 #表示開幾個執行緒去相應瀏覽器請求

#注意:gunicorn的路徑 是在執行了which gunicorn得到的路徑

​ 測試:在包含manage.py檔案的目錄下執行類似下面的命令

gunicorn 工程名字.wsgi -c gunicorn配置資料夾/配置檔案
sudo apt install nginx
​ 在/etc/nginx/conf.d 目錄下 新建乙個 你的配置檔案.conf

​ 加入類似的配置

server

location /static

}

​ 修改完配置 執行 sudo nginx -s reload

負載均衡的配置

upstream axf

server

location /static

}

​ 安裝:sudo apt install supervisor

​ 在/etc/supervisor/conf.d 目錄下新建你的配置檔案.conf 內容如下

directory=/home/ubuntu/user/專案**

command=/home/ubuntu/.local/bin/gunicorn 工程名字.wsgi -c gunicorn配置資料夾/配置檔案

autostart=true

startsecs=10

autorestart=true

startretries=3

user=當前使用者名稱

priority=999

redirect_stderr=true

stdout_logfile_maxbytes=100mb

stdout_logfile_backups = 20

stdout_logfile=/var/log/supervisor_logs/axf.log

stopasgroup=false

killasgroup=false

帶注釋的版本

[program:axf]

directory=/home/ubuntu/user/專案**

command=gunicorn pro.wsgi -c service_conf/django_gunicorn.conf ; 程式啟動命令

autostart=true ; 在supervisord啟動的時候也自動啟動

startsecs=10 ; 啟動10秒後沒有異常退出,就表示程序正常啟動了,預設為1秒

autorestart=true ; 程式退出後自動重啟,可選值:[unexpected,true,false],預設為unexpected,表示程序意外殺死後才重啟

startretries=3 ; 啟動失敗自動重試次數,預設是3

user=root ; 用哪個使用者啟動程序,預設是root

priority=999 ; 程序啟動優先順序,預設999,值小的優先啟動

redirect_stderr=true ; 把stderr重定向到stdout,預設false

stdout_logfile_maxbytes=100mb ; stdout 日誌檔案大小,預設50mb

stdout_logfile_backups = 20 ; stdout 日誌檔案備份數,預設是10

; stdout 日誌檔案,需要注意當指定目錄不存在時無法正常啟動,所以需要手動建立目錄(supervisord 會自動建立日誌檔案)

stdout_logfile=/var/log/supervisor_logs/程式.log # supervisor_logs需要自己建立 axf.log博主自己建的,應該是自己生成

stopasgroup=false ;預設為false,程序被殺死時,是否向這個程序組傳送stop訊號,包括子程序

killasgroup=false ;預設為false,向程序組傳送kill訊號,包括子程序

修改完以後
sudo supervisorctl reload

sudo supervisorctl restart all(你想重啟的單個應用名字也可以)

​ 檢視狀態

sudo supervisorctl status
如果啟動問題 先去看看log log的位置 stdout_logfile=/var/log/supervisor_logs/程式.log

nginx基於uwsgi部署django專案

1.安裝nginx yum install y nginx 需要epel源 2.安裝環境 可以考慮使用虛擬化環境,本處不再使用3.安裝uwsgi yum groupinstall development tools yum install zlib devel bzip2 devel pcre de...

nginx 基於uwsgi部署Django

1.安裝nginx yum install y nginx 需要epel源 2.安裝環境 可以考慮使用虛擬化環境,本處不再使用3.安裝uwsgi yum groupinstall development tools yum install zlib devel bzip2 devel pcre de...

nginx搭建及部署

簡單來說nginx就是搭建靜態 最快速,高效的一種方案。但對高併發不是特別友好。但對於個人 及小規模 足夠使用了。這裡我用vue打包後的檔案進行示範。壓縮包的內容解壓到你要部署的位置 e idea 某某管理系統 dist 如果發現開啟網頁時這個介面,則標準nginx啟動成功但配置錯誤 這是就必須要關...