使用gunicorn启动用到了flask-socketio的项目时,出现了400 Bad request的错误提示。
查阅官方文档:
https://flask-socketio.readthedocs.io/en/latest/#gunicorn-web-server
有关于用gunicorn以gevent的启动介绍和启动命令
首先安装gevent
pip install gevent
官方文档的启动介绍命令
gunicorn -k gevent -w 1 module:app
如果想以某个端口和ip启动
gunicorn -k gevent run:app -w 1 -b 0.0.0.0:8088
先说我报400bad的原因:
这里有个-w的参数,当前启动方式只支持 -w 1 (一个worker)
如果是多个worker的启动配置,则会出现HTTP 请求 400Bad Request的报错
启动后,可能会出现一个monkey.patch_all()的错误或者警告提示,提示你在运行前要先进行打补丁,否则项目在运行中可能会出现一些异常情况。
找到你运行的run.py文件
from gevent import monkey
monkey.patch_all()
from app import create_app
app = create_app(debug=True)
在创建app前进行一个patch_all()操作,该报错就会消失。