flask+uwsgi+supervisor部署流程


 背景:

小魚最近搞了個工程,python用的2.7(用3也可以),后端使用的是flask,服務器用的linux,使用 flask+uwsgi+supervisor部署 ,查閱相關博客、調試、實操,已經搞起來了

supervisor介紹如下:

supervisor:進程管理工具,可以很方便的管理你的工程 啟動、重啟、停止等操作,不用再去自己寫腳本控制;想更深入了解可以搜下相關supervisor資料介紹

 

安裝部署流程如下

 

1.將工程打包到服務器上

上傳的方法很多,如xftp、filezilla 工具、或ftp命令等;

 

2.新建虛擬環境

此步可以忽略,根據自己實際情況來

使用virtualenv 的好處就是可以讓你的項目單獨使用一個環境,不受系統環境和其他項目的影響

命令(如果沒有,安裝一下pip install virtualenv ):

virtualenv venv

或:

python-m venv venvDir

執行后會生成venv目錄,使用 source venv/bin/activate 進去虛擬環境,如圖:

 

退出直接使用 deactivate  即可

你的工程需要安裝包的話自行 pip安裝

 

3.安裝 uwsgi

pip  install uwsgi

安裝完成后,會成生 uwsgi 文件,如圖:

 

 

4.配置 uconfig.ini文件

新建 uconfig.inx文件,命令行 vi uconfig.ini

增加配置如下:

 

 1 [uwsgi]
 2 
 3 # uwsgi 啟動時所使用的地址與端口
 4 http-socket = 0.0.0.0:5000 
 5 
 6 # 指向網站目錄
 7 chdir = /home/xxxxx  #路徑為步驟1中實際工程的目錄
 8 
 9 # python 啟動程序文件
10 wsgi-file = manage.py
11 
12 # python 程序內用以啟動的 application 變量名
13 callable = app
14 plugins = python
15 # 處理器數
16 processes = 4
17 
18 # 線程數
19 threads = 2
20 
21 #狀態檢測地址
22 stats = 127.0.0.1:9191

 

 

 5.安裝 supervisor

pip install supervisor

安裝完成后會生成 echo_supervisord_conf、supervisorctl、supervisord 文件,如圖

 

 

6. 生成配置文件  supervisord.conf

1)supervisord.conf 文件名自己取,生成到哪個目錄下面自己選擇,命令:

echo_supervisord_config > supervisord.conf

2)修改supervisord.conf配置

vi supervisord.conf

輸入二個大寫的G,到文件最后面,配置如下:

 

[include]      # ‘;’注釋去掉
;files = relative/directory/*.ini
files = /xxx/supervisor/conf.d/*.conf # 路徑自己配置

 

 如圖:

其他文件修改:參考

https://www.cnblogs.com/whycai/p/11611007.html

 

3)修改后保存,命令 wq

 

7.新增配置文件 supervisor/conf.d/uwsgi.conf

命名:

mkdir -p supervisor/conf.d
vi supervisor/conf.d/uwsgi.conf

新增配置如下:

 1 ; ================================
 2 ; uwsgi supervisor
 3 ; ================================
 4 
 5 [program:uwsgi]
 6 command=/xxxx/uwsgi --ini /xxx/uconfig.ini  # 前面路徑為步驟3中uwsgi的路徑,后面路徑為步驟4中uconfig.ini的路徑
 7 directory=/xxxxx/  # 路徑為步驟1中自己工程的目錄
 8 user=root
 9 stdout_logfile=/xxxxx/uwsgi_out.log  # 自己選擇路徑配置
10 stderr_logfile=/xxxx/uwsgi_err.log  # 自己選擇路徑配置
11 autostart=true
12 autorestart=true
13 startsecs=10
14 priority=997

 

 

8.以上都完成后,就可以運行你的工程了

1)命令:

killall supervisord

supervisord -c supervisord.conf

 

2)查看是否啟動,

ps -ef|grep supervisord

ps -ef|grep uwsgi

 

如果沒啟動,查看配置是否配置有誤,具體問題具體分析

 

3)使用supervisorctl管理你的工程 

命令:

supervisorctl

help

 

使用 stop、start等,可以很方便的管理你的工程

 

 

好了,以上就是小魚的部署步驟,可以愉快的玩耍了

 

 

一些報錯結果:

1. Unlinking stale socket xxxxxx/supervisor.sock

 

解決:unlink supervisor.sock

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM