-- 首先我是一个python初学者,本帖也是针对初学同学交流使用, 大牛请绕路。
一、Flask 示例搭建Flask虚拟环境
# shell
$ cd /code
$ mkdir flask_demo && cd flask_demo
$ pyvenv env
$ source env/bin/activate
$ touch app.py
2. 安装Flask
# shell
$ pip3 install flask
3. Flask demo
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello World!"
if __name__ == '__main__':
app.run(port=5000)
4. 运行
$ python3 app.py
二、使用 Gunicorn 启动服务安装Gunicorn( 可以全局安装 我这安装到了虚拟环境 )
$ pip3 install gunicorn
2. Gunicorn 方式运行
虚拟环境
$ /env/bin/gunicorn -w 4 -b 0.0.0.0:5000 app:app
全局环境
$ gunicorn -w 4 -b 0.0.0.0:8080 app:app
3. 关于参数-w 4是指预定义的工作进程数为4,
-b 127.0.0.1:4000指绑定地址和端口
app:app ”:“ 左边的app是flask的启动python文件,”:“右边的app则是flask应用程序实例关于 Supervisor的介绍可以参考标题里的链接安装工具easy_install
$ yum install python-setuptools
2. 安装Supervisor
$ easy_install supervisor
3. 配置Supervisor应用守护
a) 通过运行echo_supervisord_conf程序生成supervisor的初始化配置文件
$ mkdir /etc/supervisor
$ echo_supervisord_conf > /etc/supervisor/supervisord.conf
b) 修改supervisord.conf, 作为结尾处修改
...
;[include]
;files = relative/directory/*.ini
;conf.d
[include]
files = conf.d/*.conf
c) 目录"/etc/supervisor/conf.d/"下创建一个.conf文件, 内容如下
[program:flask_web]
command=/code/flask_web/env/bin/gunicorn -w 4 -b 0.0.0.0:5000 app:app
directory=/code/flask_web
autorestart=true
stderr_logfile=/data/logs/cc_web/error.log
stdout_logfile = /data/logs/cc_web/out.log
environment = PATH="/code/flask_web/env/bin",PYTHONPATH="/code/flask_web:PYTHONPATH"
user=root ; 进程执行的用户身份
stopsignal=INT
4. 启动, 并查看是否生效
$ supervisord -c /etc/supervisor/supervisord.conf
$ ps -ef | grep flask_web
5. 常用的相关管理命令
$ supervisorctl restart ;重启指定应用
$ supervisorctl stop ;停止指定应用
$ supervisorctl start ;启动指定应用
$ supervisorctl restart all ;重启所有应用
$ supervisorctl stop all ;停止所有应用
$ supervisorctl startall ;启动所有应用