f 性能优化-阿里云Ubuntu 22.04 64位搭建Flask流程(亲测) - Powered by qidao123.com技术社区

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

打印 上一主题 下一主题

主题 1841|帖子 1841|积分 5523

cd /home  进入home盘
  安装虚拟情况:
1、安装virtualenv 
   pip install virtualenv 
  2.创建新的虚拟情况:
   virtualenv myenv 
  3、激活虚拟情况(激活情况可以在当前情况下安装包)
   source myenv/bin/activate 
  此时,终端会更改为显示已被激活的虚拟情况名称,(myenv)
4、退出虚拟情况
   deactivate
  特别的为虚拟情况制定python版本
   virtualenv -p=/usr/bin/python<version> path/to/new/virtualenv/ 
  安装的过程:
 

 

创建python文件(app.py)
   cd /home/myenv
  touch app.py 
  安装flask
    pip install Flask
  编写app.py文件
    nano app.py
  1. from flask import Flask
  2. app = Flask(__name__)
  3. @app.route('/', methods=['GET'])
  4. def hello_world():
  5.     return 'Hello Flask!'
  6. if __name__ == '__main__':
  7.     app.run(host='0.0.0.0', port=5000)
复制代码
 编写完成
   ctrl+O  生存,提示然后回车
  ctrl+x   退出
   安装gunicorn
   pip install gunicorn
  gunicorn的一些使用下令:
   查看gunicorn的历程数树:
  pstree -ap|grep gunicorn
  关闭gunicorn:
  kill -9   3308
  重启gunicorn;
  kill -HUP 3308
   
  然后用gunicorn启动app.py文件
   gunicorn -w 4 -b 0.0.0.0:5000 app:app 
    参数寄义

  

  • -w:工作历程数
  • -b:绑定的地址和端口
  • app:Flask 启动的 Python 文件名
  • app:脚本中创建的 Flask 对象名
   
  然后报错了,提示超时tiomeout
  1. [2025-06-09 16:29:31 +0800] [48889] [CRITICAL] WORKER TIMEOUT (pid:48892)
  2. [2025-06-09 16:29:31 +0800] [48892] [ERROR] Error handling request (no URI read)
  3. Traceback (most recent call last):
  4.   File "/home/myenv/lib/python3.10/site-packages/gunicorn/workers/sync.py", line 133, in handle
  5.     req = next(parser)
  6.   File "/home/myenv/lib/python3.10/site-packages/gunicorn/http/parser.py", line 41, in __next__
  7.     self.mesg = self.mesg_class(self.cfg, self.unreader, self.source_addr, self.req_count)
  8.   File "/home/myenv/lib/python3.10/site-packages/gunicorn/http/message.py", line 259, in __init__
  9.     super().__init__(cfg, unreader, peer_addr)
  10.   File "/home/myenv/lib/python3.10/site-packages/gunicorn/http/message.py", line 60, in __init__
  11.     unused = self.parse(self.unreader)
  12.   File "/home/myenv/lib/python3.10/site-packages/gunicorn/http/message.py", line 271, in parse
  13.     self.get_data(unreader, buf, stop=True)
  14.   File "/home/myenv/lib/python3.10/site-packages/gunicorn/http/message.py", line 262, in get_data
  15.     data = unreader.read()
  16.   File "/home/myenv/lib/python3.10/site-packages/gunicorn/http/unreader.py", line 36, in read
  17.     d = self.chunk()
  18.   File "/home/myenv/lib/python3.10/site-packages/gunicorn/http/unreader.py", line 63, in chunk
  19.     return self.sock.recv(self.mxchunk)
  20.   File "/home/myenv/lib/python3.10/site-packages/gunicorn/workers/base.py", line 204, in handle_abort
  21.     sys.exit(1)
  22. SystemExit: 1
复制代码
  办理办法:
错误原因:接口返回时间超时。默认情况下,Gunicorn 超时时间为30秒。如果接口30秒内没有返回效果,Gunicorn 会弹出超时错误,并且会杀死flask服务重启。
办理方法
办理方法是在启动下令中加大超时参数--timeout。
  样例,设置超时时间为200秒
# 单位是秒
  gunicorn -w 4 -b 0.0.0.0:5000 --timeout 200 app:app
   
  重新启动
    gunicorn -w 4 -b 0.0.0.0:5000 --timeout 200 app:app
  注意启动文件必须着实myenv文件夹下,否则不会乐成
 

 再次启动就乐成了!!
直接访问:记得使用阿里云公网ip,加端口号。(安全组添加5000端口)

 
文件配置 Gunicorn 参数:
myenv下创建gunconf.py
  1. # 是否开启debug模式
  2. debug = False
  3. # 访问地址
  4. bind = "0.0.0.0:5000"
  5. # 工作进程数
  6. workers = 4
  7. # 工作线程数
  8. threads = 2
  9. # 超时时间
  10. timeout = 200
  11. # 输出日志级别
  12. loglevel = 'debug'
  13. # 存放日志路径
  14. pidfile = "log/gunicorn.pid"
  15. # 存放日志路径
  16. accesslog = "log/access.log"
  17. # 存放日志路径
  18. errorlog = "log/debug.log"
  19. # gunicorn + apscheduler场景下,解决多worker运行定时任务重复执行的问题
  20. preload_app = True
复制代码
 myenv下分别创建"log/gunicorn.pid"、"log/access.log"、"log/debug.log"

 

然后用文件启动:
 



至此搭建完毕!
gunicorn的一些参考下令介绍:
https://cloud.tencent.com/developer/article/1902723
    一些unbantu的下令:
  复制文件:
  cp example.txt /home/user/documents/
  删除文件下令:
  rm app.py
  创建文件下令:
  touch app.py
  创建文件夹:
  mkdir myfolder
  查看端口被占用的情况:
   1、查找特定端口的占用情况:如果您知道某个特定端口被占用,可以结合grep下令来查找。比方,如果您想查找80端口的使用情况,可以输入以下下令。
  netstat -tln | grep 80
  2、查找占用端口的历程:使用以下下令来查找占用特定端口的历程。比方,如果您想查找占用80端口的历程,可以输入以下下令。
  lsof -i:80
  3、制止历程
  kill -9 80
   

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农妇山泉一亩田

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表