利用gunicorn和flask快速部署

文件结构如下

myapp/
    __init__.py
    tmp/
    static/
    templates/
    views/
    run.py
    app.py
    restart.sh

app.py应用与路由,开发测试时,直接运行这个脚本启动。

# encoding:utf-8
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
    return 'Hello World'

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=30030)

run.py脚本是生产环境启动的脚本,后面配合gunicorn使用:

# coding:utf-8
from app import app
if __name__ == '__main__':
    # 生产环境下的配置
    app.run(host='0.0.0.0', port=30030)

运行restart.sh启动或者重启服务。里面会指定.pid文件,用以重启。

#/bin/bash
kill `cat ./tmp/slavett.pid`
gunicorn -w 1 run:app -p ./tmp/slavett.pid &

最后将启动脚本加入到开机启动中:

  • 运行sudo vim /etc/rc.d/rc.local编辑该文件。
  • 在最后加入两行:
cd /workplace/to/myapp  # 到工作目录
su username -c "bash restart.sh" # 以参数的方式运行命令
cd -  # 返回之前的目录

你可能感兴趣的:(利用gunicorn和flask快速部署)