转载

Flask 502 错误解决:upstream sent too big header

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用 文章源码 进行转载;
  • 本博客采用WPCMD 维护;
  • 本文标题:Flask 502 错误解决:upstream sent too big header
  • 本文链接: http://zengrong.net/post/2614.htm

前段时间用 Flask 制作的一个网站在进行较大量计算时频繁出现 502 错误,在本地调试却无法重现发现,也并没有在服务器上看到 flask 提供的故障 log。

我怀疑是 Nginx 的错误,看了一下 Nginx 日志果然发现问题:

2017/01/06 16:42:17 [error] 15273#0: *1087067 upstream sent too big header while reading response header from upstream, client: xxx.xx.xxx.98, server: xxx.bbb.com, request: "GET /kpi/sheets/calc/?team_id=client&ks_date=2016-12&typ=all HTTP/1.1", upstream: "uwsgi://127.0.0.1:5000", host: "xxx.bbb.com", referrer: "http://xxx.bbb.com/kpi/sheets/client/2016-12/"

这是一个缓存设置的问题,打开 nginx 配置,加入两行配置即可:

uwsgi_buffers 16 16k;
uwsgi_buffer_size 32k;

注意,如果你没有明确写入这两个参数,它们的默认值为:

uwsgi_buffers 8 4k|8k; # 根据操作系统内存页大小
uwsgi_buffer_size 4k|8k; # 根据操作系统内存页大小

具体配置的说明可以参考 uwsgi_buffers 和 uwsgi_buffer_size 。

解决方案来自于这个回答: upstream sent too big header while reading response header from upstream ,该回答针对 fastcgi ,改为 uwsgi 即可。

如何配置 Nginx 可以参考我的文章《部署Flask + uWSGI + Nginx》 中的配置 Nginx + uwsgi 。

原文  http://zengrong.net/post/2614.htm
正文到此结束
Loading...