502错误的网关:nginx-日志:读取...时上游过早关闭连接[Django 2.1 |古尼康19.7.1 | Google Cloud Platform]

时间:2019-06-24 20:47:10

标签: django postgresql nginx google-cloud-platform gunicorn

我是一家新公司,该公司在Google Cloud PLatform上拥有此项目,我从未使用过。在第一天,我遇到了502 Bad Gateway错误。在Google Cloud Platform上的日志中查找以下信息:

[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的新手,所以我希望能提供一些建议以解决自6月17日以来我一直遇到的问题。

谢谢!

编辑: 这些天之后,我经历了很多论坛,并为我的app.yaml添加了一些新配置,以尝试与线程和工作人员一起解决该问题。

入口点行如下所示:

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

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

我正在添加此信息,希望有人可以向正确的方向提供建议。

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

本地测试运行得更好,但是在生产环境中根本无法正常工作。

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

该项目不使用Docker之类的容器。如果我对项目进行“ dockerize”,也许会有所帮助?

再次感谢。这是我第二周从事这项工作,负责的开发人员在我开始一周前辞掉了工作。所以我在这个反复试验的道路上,以了解项目并尝试弄清发生了什么。

1 个答案:

答案 0 :(得分:0)

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