python 部署:virtuale + gunicorn + supervisor + flask

主要參考html

Flask + Gunicorn + Nginx 部署python

http://www.cnblogs.com/Ray-liang/p/4837850.htmlnginx

python web 部署:nginx + gunicorn + supervisor + flask 部署筆記git

http://www.jianshu.com/p/be9dd421fb8dweb

 

 

 

下面記錄下部署的主要過程flask

1.在服務器中克隆python flask 項目

git clone https://git.oschina.net/caomenglong/SMT.gitvim

2.安裝 virtualenv

yum install python-setuptools python-devel服務器

easy_install virtualenvapp

cd SMT性能

virtualenv venv

. venv/bin/activate

進入 venv 虛擬環境成功,接着根據項目依賴,使用pip安裝相應的模塊。

pip install Flask

安裝成功,測試項目可否正常啓動。

項目啓動成功,virtualenv和flask項目部署ok。

下面安裝Gunicorn 提升項目運行性能。

安裝Gunicorn

pip install gunicorn

安裝完成後使用如下命令啓動項目

gunicorn -w 4 -b 0.0.0.0:7000 app:app

0.0.0.0不限制訪問來路

app:app  啓動文件app.py : 項目中的flask應用變量名。

ok 關閉它這樣 Flask就加了一個套子了。

下面咱們配置Supervisor 讓程序可以在後臺守護運行

安裝supervisor 

pip install supervisor

再項目SMT目錄下初始化配置文件

echo_supervisord_conf > supervisor.conf

vim supervisor.conf

在配置文件最底部加入

[program:smt]
command=/data/python/SMT/venv/bin/gunicorn -w 4 -b 0.0.0.0:7000 app:app    ; supervisor啓動命令
directory=/data/python/SMT                                                 ; 項目的文件夾路徑
startsecs=0                                                                             ; 啓動時間
stopwaitsecs=0                                                                          ; 終止等待時間
autostart=false                                                                         ; 是否自動啓動
autorestart=false                                                                       ; 是否自動重啓
stdout_logfile=/data/python/SMT/log/gunicorn.log                           ; log 日誌
stderr_logfile=/data/python/SMT/log/gunicorn.err                           ; 錯誤日誌

保存!

啓動supervisord

supervisord -c supervisor.conf

查看狀態

supervisorctl -c supervisor.conf status 

smt未啓動

supervisorctl -c supervisor.conf start smt

到這裏 項目就部署成功了,smt項目將會在後臺一直自動運行。掛了後也會自動重啓。

 

supervisord -c supervisor.conf                             經過配置文件啓動supervisor supervisorctl -c supervisor.conf status                    察看supervisor的狀態 supervisorctl -c supervisor.conf reload                    從新載入 配置文件 supervisorctl -c supervisor.conf start [all]|[appname]     啓動指定/全部 supervisor管理的程序進程 supervisorctl -c supervisor.conf stop [all]|[appname]      關閉指定/全部 supervisor管理的程序進程

相關文章
相關標籤/搜索