django部署之supervisor安裝使用

2021-10-02 04:15:10 字數 2373 閱讀 1375

在之前的文章中,我們講過使用nginx和gunicorn來部署**,如果已經成功完成了前兩步,那麼你的**已經可以通過網域名稱或者ip進行訪問了。

但是,你會注意到,在gunicorn的啟動後,它會一直在伺服器上掛著,如果你關閉頁面,或者伺服器重啟崩潰等,就會導致gunicorn不再執行,可以嘗試在後台啟動gunicorn,但是也有可能在伺服器崩潰後,無法自行啟動,下面,我們使用乙個軟體,supervisor來為我們執行啟動的和維持的功能。

安裝在虛擬環境下,執行:

pip install supervisor
建立surpervisor的管理目錄

建立乙個~/etc的目錄:(注意,這個目錄名字很像ubuntu系統下的/etc,但是不是,請注意這個 ~/etc的目錄是在/home/user下的乙個路徑,不要搞錯)

mkdir ~

/etc

繼續建立

mkdir -p ~

/etc/supervisor/conf.d

mkdir -p ~

/etc/supervisor/var/log

然後,進入~/etc目錄:

cd ~

/etc

生成 supervisor 的配置檔案:

echo_supervisord_conf > supervisord.conf
修改 supervisord.conf,讓 supervisor 程序產生的一些檔案生成到上面我們建立的目錄下,而不是其預設指定的地方:

vim supervisord.conf
首先找到 [unix_http_server] 版塊,將 file 設定改為如下的值:

file

=/home/user/etc/supervisor/var/supervisor.sock

修改 [supervisord] 板塊下的 logfile 和 pidfile 檔案的路徑,還有 user 改為系統使用者:

logfile=

/home/user/etc/supervisor/var/log/supervisord.log

pidfile=

/home/user/etc/supervisor/var/supervisord.pid

user=user#user前面如果有;,去掉;

還有 [supervisorctl] 板塊下:

serverurl=unix:

///home/user/etc/supervisor/var/supervisor.sock

[include] 版塊:

files =

/home/user/etc/supervisor/conf.d/

*.ini#去掉include和files前面的;號

ok後,:wq儲存退出。

接下來,進入conf.d:

cd supervisor/conf.d

vim blog.ini

建立 blog.ini檔案,並寫入:

[program:blog]

#程式名稱

command=gunicorn -

-bind unix:

directory=

/home/user/

+專案路徑

autostart=true

autorestart=unexpected

user=user

stdout_logfile=

/home/user/etc/supervisor/var/log/blog-stdout.log

stderr_logfile=

/home/user/etc/supervisor/var/log/blog-stderr.log

#log 為日誌,後面supervisor啟動出錯的話,可以cat+日誌檢視報錯原因

注意,以上注釋,不需要填入檔案中,可能會引起錯誤,完成後:wq儲存退出

啟動surpervisor:

supervisord -c ~

/etc/supervisord.conf #-c 指定 supervisr 啟動時的配置檔案

supervisorctl -c ~

/etc/supervisord.conf #進入 supervisorctl 程序管理控制台:

進入後,輸入update,進行更新,後輸入quit,退出

這樣,就可以在瀏覽器中輸入你的網域名稱或者ip了,首頁就出現了

Django部署問題

1.專案settings.py中須有如下設定 base dir os.path.dirname os.path.dirname os.path.abspath file debug true allowed hosts 靜態檔案路徑 static url static static root os....

Django 環境部署

命令列輸入 python m venv 11 env windows系統 啟用虛擬環境 11 env scripts activate停止使用虛擬環境 deactivate安裝django pip install djangodjango中建立專案 django admin.py startproj...

部署django應用

django開發時只需要python就能完成,利用其自帶的開發服務,可以方便在開發環境執行起應用,但部署於生產時則需要一些額外的操作。首先是配置的修改,settings.py裡有些最小配置需要修改 static root os.path.join os.getcwd static allowed h...