VPS环境下用Gunicorn部署Flask应用遭遇Internal Server Error求助
解决Flask + Gunicorn部署的500内部服务器错误
第一步:查看Gunicorn具体错误日志
后台启动Gunicorn无法直接看到错误输出,这是排查500错误的核心阻碍。先杀掉现有Gunicorn进程:
kill 3029 3030
然后在虚拟环境中前台启动Gunicorn,不要加--daemon参数:
source env/bin/activate cd project gunicorn --bind 127.0.0.1:8000 app:application
此时控制台会直接输出具体错误信息(比如模块缺失、Flask实例定义错误、代码语法问题等),这是定位问题的关键。
第二步:检查Flask实例命名是否匹配
Gunicorn命令中的app:application指从app.py模块导入名为application的Flask实例。检查app.py开头是否正确定义该实例:
from flask import Flask application = Flask(__name__) # 必须是这个命名,或修改Gunicorn命令匹配你的实例名 # 你的路由与业务代码... if __name__ == "__main__": application.run(debug=True, host='0.0.0.0', port='8888')
如果你的Flask实例命名是app(比如app = Flask(__name__)),则Gunicorn命令需改为:
gunicorn --bind 127.0.0.1:8000 app:app
第三步:验证依赖与工作目录
- 进入虚拟环境后,执行
pip list确认Flask、Gunicorn及应用所需所有依赖已正确安装。 - 启动Gunicorn时确保当前工作目录为
project,且app.py确实在该目录下(可用ls命令确认)。
第四步:测试基础运行
若以上步骤无问题,先通过Flask内置服务器验证应用本身正常:
cd project python app.py
用curl 127.0.0.1:8888测试,能正常返回内容再切换回Gunicorn。
内容的提问来源于stack exchange,提问作者Cristian-Teodor Babalau
相关产品推荐
相关产品推荐

