部署Flask应用至Azure Web App遇端口8000 HTTP探测失败问题
解决Azure Web App Flask容器端口不响应问题
问题诊断
错误提示容器未在8000端口响应HTTP探测,你的app.py代码中app.run()未指定端口,Flask默认监听5000端口,但Azure配置的探测端口为8000,端口不匹配是核心问题。
修复步骤
修改Flask代码指定端口
在app.run()中显式指定端口为8000,同时读取Azure自动设置的PORT环境变量,增强配置兼容性:from flask import Flask import os app = Flask(__name__) @app.route('/') def hello(): return 'Azure Web App Running' if __name__ == '__main__': # 优先读取环境变量PORT,默认 fallback 到8000 port = int(os.getenv('PORT', 8000)) app.run(host='0.0.0.0', port=port, debug=True)确认Azure配置一致性
- 进入Azure Web App的「配置」>「应用程序设置」,确保
PORT变量设置为8000(未设置时Azure会默认使用该值,显式设置更稳妥) - 检查「容器设置」中的「启动命令」,确保命令与代码端口匹配,比如使用Flask自带服务器时启动命令为
python app.py
- 进入Azure Web App的「配置」>「应用程序设置」,确保
验证容器启动状态
部署后在Azure Web App的「日志流」中查看容器日志,确认是否输出Running on http://0.0.0.0:8000类信息,验证服务确实在目标端口监听。
额外建议
生产环境避免使用Flask自带的debug=True服务器,建议替换为gunicorn等生产级WSGI服务器:
- 在
requirements.txt中添加gunicorn依赖 - 将Azure启动命令改为
gunicorn --bind=0.0.0.0:8000 app:app
内容的提问来源于stack exchange,提问作者Todd
相关产品推荐
相关产品推荐

