如何在 gunicorn(django) + nginx + docker 中更改缓冲区大小
Posted
技术标签:
【中文标题】如何在 gunicorn(django) + nginx + docker 中更改缓冲区大小【英文标题】:How change buffer-size in gunicorn(django) + nginx + docker 【发布时间】:2019-10-01 13:33:07 【问题描述】:我的问题是,在某些应用程序接收 body size large(xml) 并返回 xml large 的请求中,请求返回 502。这是随机发生的。
我认为它正在运行缓冲区溢出。
我的应用程序在 docker 中使用 wsgi 之类的 guinicorn 运行。我想将缓冲区大小的值更改为 64k。我怎么做?
我的 gunicorn 部署命令
python manage.py migrate && gunicorn backend.wsgi:application -b 0.0.0.0:8000 --workers 3 --log-level=info
我可能弄错了,我的基地在: nginx uwsgi (104: Connection reset by peer) while reading response header from upstream
错误日志 nginx
38286 upstream prematurely closed connection while reading response header from upstream
【问题讨论】:
您的日志应该会告诉您 502 的来源以及确切原因。你在你的独角兽日志中看到了什么? nginx日志?甚至可能是 django 日志? 我也有同样的问题。如果使用 uwsgi,可以在 uswgi.ini 文件中指定缓冲区大小: [uwsgi] buffer-size = 32768 但是使用 gunicorn 时如何做到这一点? 您解决了这个问题吗?因为我有同样的问题。 【参考方案1】:我认为是 nginx 问题,请查看client_max_body_size
【讨论】:
会引发这个错误吗?我认为 nginx 接收请求并重新传递 gunicorn,但出于任何原因都没有找到 gunicorn(502 坏网关)。以上是关于如何在 gunicorn(django) + nginx + docker 中更改缓冲区大小的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Django 使用 Gunicorn 提供静态文件?
如何使用 Gunicorn 查看 Django 错误的详细信息?
使用 gunicorn 时如何设置 django 测试服务器?
如何运行多个Django App Gunicorn systemd?
如何使用 gunicorn 为 django 配置 nginx?
通过 Gunicorn 在 Heroku 上的 Django-twoscoops-project(骨架)。如何设置Procfile?