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

App Engine Flex部署Django应用访问/admin登录返回502错误

问题根因

从错误日志和配置来看,502错误由两个核心问题触发:

  • Gunicorn默认30秒超时阈值不足,Django admin登录请求需要连接Cloud SQL,网络延迟或数据库响应慢直接触发worker进程被强制杀死,nginx返回502错误
  • 实例资源配置过低,0.5GB内存不足以支撑Django运行+数据库连接开销,也会导致worker进程异常退出
    另外日志中静态文件404是未配置GAE静态路由导致,不会直接触发502,但也需要同步修复。

修复方案

1. 修改app.yaml配置

调整Gunicorn超时参数、上调实例资源、添加静态文件路由:

# 添加静态文件路由,放在runtime配置之前
handlers:
- url: /static
  static_dir: static/

# [START runtime]
runtime: python
env: flex
# 给Gunicorn添加--timeout参数,延长超时到120秒
entrypoint: gunicorn -b :$PORT --timeout 120 [myproject.wsgi]
beta_settings:
    cloud_sql_instances: [instance]:asia-east2:[project]

automatic_scaling:
  min_num_instances: 1
  max_num_instances: 1
  max_concurrent_requests: 80
resources:
  cpu: 1
  # 内存上调到1GB
  memory_gb: 1
  disk_size_gb: 10

runtime_config:
  python_version: 3
# [END runtime]

2. 修复静态文件404问题

部署前先执行Django静态文件收集命令,把admin自带的静态资源汇总到项目static目录:
python manage.py collectstatic

3. 核对数据库配置

确认Django的settings.py中数据库HOST参数填写的是Cloud SQL的unix socket路径,格式如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # 按实际使用的数据库类型修改
        'NAME': '你的数据库名称',
        'USER': '数据库账号',
        'PASSWORD': '数据库密码',
        'HOST': '/cloudsql/[instance]:asia-east2:[project]',
        'PORT': '3306',
    }
}

4. 核对服务账号权限

确认App Engine默认服务账号(格式为<你的项目ID>@appspot.gserviceaccount.com)已被授予Cloud SQL Client角色权限,避免数据库连接被拒绝。

修改完成后重新部署应用即可解决admin登录502问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:39:02