首页 > 解决方案 > 如何解决“上游过早关闭”

问题描述

我正在设置我的服务器,以避免在客户端调用中随机出现“上游过早关闭”错误 502。我的 Rest API Python/Flask 托管在 Nginx/Uwsgi 上的 AWS 上,我最多有 200 个并发用户。

在错误日志中,我收到以下消息:

1180 上游过早关闭连接,同时从上游读取响应标头,客户端:xxx.xx.xx.xx,服务器:_,请求:“POST /API/sendmessage HTTP/1.1”,上游:“uwsgi://unix:// /opt/python/log/uwsgi.sock:”,主机:“XXX.XXXX-prod.com”

在 access.log 我得到 502:

“POST /API/sendmessage HTTP/1.1” 502 166 “-” “okhttp/3.12.1”

我已经在 AWS 上尝试了一个 Apache 配置,结果是最糟糕的!这是我目前的配置:

在 64 位 Amazon Linux/2.8.6 上运行的 Python 3.6
类型 d'instance EC2:c5.large

我分享了我的设置文件的一些配置:

  exec /opt/python/run/venv/bin/uwsgi \
     --socket=/opt/python/log/uwsgi.sock \
     --chdir=/opt/python/current/app \
     --module=wsgi:application \
     --pidfile=/opt/python/run/uwsgi-master.pid \
     --processes=4 \
     --threads=1 \
     --master \
     --uid=wsgi  \
     --gid=wsgi \
     --harakiri=300 \
     --max-requests=5000 \
     --vacuum \
     --die-on-term \
     --venv=/opt/python/run/venv \
     --chmod-socket=666

我尝试了多种方法:更改进程、线程、删除主机、“按期死亡”,但我真的被卡住了。我想我已经阅读了 Stack Overflow 和 Google 上与该主题相关的所有文章。

标签: pythonamazon-web-servicesnginxflaskuwsgi

解决方案


推荐阅读