如何在ubuntu服务器上持久化后台运行flask
flask自带的环境适合在开发时使用,在生产环境中不能持久化运行。
我这里使用的 gunicorn 库,搭建WSGI服务来运行flask程序。gunicorn是一个python WSGI http server,
一、安装gunicorn
pip install gunicorn
同时还需要安装以下三个模块,为了使用异步worker 。
pip install greenlet
Greenlet是Python中的一个库,它基于Python标准库中的yield关键字进行封装,允许在协程中使用yield语句来暂停和恢复执行,从而实现协程的功能。
pip install eventlet
eventlet是python库函数,它通过协程、绿色线程等特性为开发者提供高效的并发网络编程支持,可用于网络服务器开发、异步任务处理、分布式系统及爬虫等场景。
pip install gevent
二、运行flask
前台运行flask,端口5000,超时时间120秒。运行文件main.py,启用5个进程
gunicorn -w 5 -b 0.0.0.0:5000 -t 120 main:app
-w
:表示工作进程数-b
:访问地址和端口-t
:设置超时时间120秒,默认30秒
后台运行,日志存放到app.log中
nohup python -m gunicorn -w 5 -b 0.0.0.0:5000 -t 120 main:app > app.log 2>&1 &
配置日志文件,不限制访问时间
gunicorn -w 5 -b 0.0.0.0:5000 -t 0 --access-logfile access.log --error-logfile error.log --log-level debug main:app -D
-D
:以守护进程启动
查看运行日志
tail -f access.log