You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Docker部署Web应用出现504:Gateway Timeout问题求助

解决Azure Docker容器Web应用504 Gateway Timeout及预热请求等待问题
  • 核对端口配置一致性

    • 确认Dockerfile中EXPOSE的端口(例如EXPOSE 8000),与Azure App Service「配置」→「常规设置」里的「端口」值完全匹配。
    • 应用代码必须监听0.0.0.0而非127.0.0.1:
      • Flask示例:app.run(host='0.0.0.0', port=8000)
      • Django示例:python manage.py runserver 0.0.0.0:8000
        只监听本地回环地址会导致Azure网关无法访问容器内的应用。
  • 调整健康检查与超时设置

    • 在Azure App Service「配置」→「健康检查」中,设置有效的健康检查路径(如/health),并确保应用能返回200状态码。若没有健康端点,可快速添加:
      # Flask示例健康端点
      @app.route('/health')
      def health_check():
          return 'OK', 200
      
    • 若应用启动需要加载资源(如模型、初始化数据),调高「配置」→「常规设置」里的「启动预热时间」,建议从默认180秒调整至300秒或更长,给足应用启动时间。
  • 排查启动与应用日志

    • 查看Azure Portal「日志流」中的容器启动日志,检查是否有依赖安装失败、端口占用、配置文件错误等启动异常。
    • 导出应用自身日志,确认应用是否卡在初始化步骤,未完成启动。
  • 本地验证容器可用性

    • 本地构建并运行Docker镜像:docker run -p 8000:8000 your-image-name
    • 访问http://localhost:8000及健康端点,确认应用能正常响应,排除镜像本身的问题。
  • 检查网络访问限制

    • 若应用依赖内部数据库或服务,确认App Service的VNet集成配置正确,防火墙规则允许容器访问这些资源,避免因连接外部服务失败导致启动停滞。

内容的提问来源于stack exchange,提问作者Siddhartha Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:35:21