栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

flask+gunicorn+nginx部署全流程

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

flask+gunicorn+nginx部署全流程

flask+gunicorn+nginx部署全流程 一、准备flask项目

test.py文件内容如下

from flask import Flask

app = Flask(__name__)

@app.route('/test/')
def test(name):
    return "hello, {}".format(name)

if __name__ == '__main__':
    app.run()
二、配置nginx

进入nginx配置文件,可以用locate nginx.conf命令查询位置

在server中增加一个loaction,如下

location ^~ /data/ {
         proxy_pass http://127.0.0.1:8010/;
         proxy_set_header Host $host;
         proxy_set_header X-Forwaeded-For $proxy_add_x_forwarded_for;
}

完成修改后,使用命令systemctl restart nginx重启nginx服务,使得更改后的配置生效

注意事项:

  1. ^= 表示url以某个常规字符串开头,即为匹配url路径,例如host:port/data/a/b/c,host:port/data/d.txt均能被上述规则匹配

  2. proxy_pass 最后一个/加与不加,作用不同

    • 若为proxy_pass http://127.0.0.1:8010/ 最后有/

      访问host:port/data/a/b.txt,则代理到http://127.0.0.1:8080/a/b.txt

    • 若为proxy_pass http://127.0.0.1:8010 最后没有/

      访问host:port/data/a/b.txt,则代理到http://127.0.0.1:8080/data/a/b.txt

    具体情况可以自行百度

三、利用gunicorn后台运行flask

使用下述命令运行flask,需要在flask项目所在文件夹

nohup gunicorn -w 4 -b 127.0.0.1:8010 test:app > test.log &

命令解释:

  • nohup 不挂断运行命令
  • gunicorn test:app test是flask项目的python文件名
    • -w 进程数量
    • -b 监听地址和端口 需要和nginx配置中的相同
  • > test.log 日志信息重定向到test.log
  • & 后台运行程序
四、访问网址

访问host:port/data/test/lgds

五、结束gunicorn进程

使用kill -9 进程号命令即可,进程号可以使用ps -aux | grep gunicorn查询

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329831.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号