如何在ubuntu服务器上持久化后台运行flask

10个月前 (08-27)学习594

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

 

 

分享到: