为什么在谷歌应用引擎灵活环境 django 中出现 502 错误?

问题描述

我想在谷歌云中部署Django + Cloudsql(Postgresql)+应用引擎柔性环境。

我的 app.yaml 设置

runtime: python
#gunicorn
env : flex
entrypoint : gunicorn -b 127.0.0.1 -p 8000 config.wsgi --timeout 120

#instance_class : F4

beta_settings:
  cloud_sql_instances: icandoit-2021start:asia-northeast3:test-pybo=tcp:5434

runtime_config:
  python_version: 3

gcloud 应用记录尾部结果

2021-02-03 11:02:17 default[20210203t195827]  [2021-02-03 11:02:17 +0000] [1] [INFO] Starting gunicorn 19.7.1
2021-02-03 11:02:17 default[20210203t195827]  [2021-02-03 11:02:17 +0000] [1] [INFO] Listening at: http://127.0.0.1:8000 (1)
2021-02-03 11:02:17 default[20210203t195827]  [2021-02-03 11:02:17 +0000] [1] [INFO] Using worker: sync
2021-02-03 11:02:17 default[20210203t195827]  [2021-02-03 11:02:17 +0000] [8] [INFO] Booting worker with pid: 8
2021-02-03 11:09:18 default[20210203t170353]  [2021-02-03 11:09:18 +0000] [1] [INFO] Handling signal: term
2021-02-03 11:09:18 default[20210203t170353]  [2021-02-03 11:09:18 +0000] [8] [INFO] Worker exiting (pid: 8)
2021-02-03 11:09:19 default[20210203t170353]  [2021-02-03 11:09:19 +0000] [1] [INFO] Shutting down: Master
2021-02-03 11:09:19 default[20210203t170353]  [2021-02-03 11:09:19 +0000] [1] [INFO] Handling signal: term
2021-02-03 11:09:19 default[20210203t170353]  [2021-02-03 11:09:19 +0000] [8] [INFO] Worker exiting (pid: 8)
2021-02-03 11:09:20 default[20210203t170353]  [2021-02-03 11:09:20 +0000] [1] [INFO] Shutting down: Master
2021-02-03 11:14:25 default[20210203t195827]  "GET /" 502

django 和 gunicon 工作正常。

为什么我有 502 错误

解决方法

请参考官方文档:

Connecting from App Engine flexible environment to Cloud SQL

运行时通过运行您在 app.yaml 文件中的入口点字段。入口点应该开始一个 侦听 PORT 环境指定的端口的 Web 服务器 多变的。例如:

entrypoint: gunicorn -b :$PORT main:app

如果您的应用满足以下要求,App Engine 将启动 如果您未指定 入口点字段:

您的应用程序目录的根目录包含一个 main.py 文件 WSGI 兼容对象,称为 app。

您的应用不包含 Pipfile 或 Pipfile.lock 文件。

App Engine 还会自动将 gunicorn 添加到您的 如果您未指定入口点字段,则需要使用 requirements.txt 文件。

Python 3 Runtime Environment

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...