502 错误网关:nginx - 日志:读取时上游过早关闭连接... [Django 2.1 |枪炮 19.7.1 | Google云平台]

502 Bad Gateway: nginx - Log: upstream prematurely closed connection while reading... [Django 2.1 | gunicorn 19.7.1 | Google Cloud Platform]

我是一家公司的新员工,该公司在 Google Cloud PLatform 上有这个项目,但我从未使用过。在我的第一天,我遇到了这个 502 Bad Gateway 错误。查看 Google 云平台上的日志,我得到以下信息:

[error] 33#33: *285 upstream prematurely closed connection while reading response header from upstream, client: 172.217.172.212, server: , request: "POST /product/fast_appraisal/result/ HTTP/1.1", upstream: "http://172.17.0.1:8080/product/fast_appraisal/result/", host: "avalieidjango.appspot.com", referrer: "https://avalieidjango.appspot.com/product/fast_appraisal/search/"

我尝试编辑 app.yaml 并向其添加 --timeout--graceful-timeout 参数,如下所示:

# [START runtime]
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT mysite.wsgi --timeout=90 --graceful-timeout=10

beta_settings:
    cloud_sql_instances: avalieidjango:southamerica-east1:avaliei

runtime_config:
  python_version: 3

handlers:
- url: /.*
  script: manage.py
  secure: always
  redirect_http_response_code: 301
# [END runtime]

settings.py文件中DEBUG变量设置为False

在网上找答案我找到了一些案例,但没有一个和我的一模一样。

我在本地 运行 在 Windows 7 上安装项目,所以只有在我将它部署到 GCP 时才会出现错误。我是 GCP 和 gunicorn 的新手。

编辑

这些天我浏览了很多论坛,并在我的 app.yaml 中添加了一些新配置,试图与线程和工作人员一起解决问题。

入口点行如下所示:

entrypoint: gunicorn -b :$PORT --worker-class=gevent --worker-connections=1000 --workers=3 mysite.wsgi --timeout 90

该项目包括在 GCP 上搜索 Postgres 数据库,收集有关属性的信息,并 运行使 AI 显示有关其值的一些预测。

我已经尝试过线程和进程,但即使只有我的请求,应用程序也太慢了,即使是一个简单的页面也需要一些时间来呈现。

本地测试运行更好,但在生产中它根本不起作用。

AI 不是为我开发的,它使用了一个很大的 joblib 文件。

该项目不使用像 Docker 这样的容器。如果我将项目“dockerize”,也许它会在某种程度上有所帮助?

我已不再看到此错误,将 CONN_MAX_AGE 值更改为 None,这使数据库连接时间未定义。但是,这可能会导致一些安全问题,必须在部署您的应用程序之前对其进行评估。如果您更改它,请继续关注 Google Cloud Logs 寻找奇怪的连接尝试。