invalid request block size: 4542 (max 4096)...skip引起的Nginx 502 Bad Geteway

Posted 保军Baojun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了invalid request block size: 4542 (max 4096)...skip引起的Nginx 502 Bad Geteway相关的知识,希望对你有一定的参考价值。

今天有用户报告了一个issue:

当他访问我们的网站时出现了以下错误:

但是我访问同样的地址却没有这个问题,连续访问多次,查看uWSGI日志发现出现以下ERROR:

 

 

原来是请求头的大小超出了uWSGI的buffer大小,默认时4K,我们没有做过修改,既然不够大,那就给大点呗,

修改uwsgi.ini :增加:

  buffer-size = 32768

重启uWSGI以后,用户问题得到解决.

 

但是问题来了,为什么我的访问没有出现这个问题呢?或者上为什么用户会遇到这个问题,接下来开始查找原因:

我们的服务域名是二级域名: xxx.abc.com (域名涉及保密,这里做了修改),公司还有一个网站是顶级域名:abc.com

用户是先在顶级域名登录后做了操作,有访问我们二级网站,就出现了以下情景:

在请求我们的二级域名网站时使用了两组cookie,第一组是顶级域名的cookie信息,第二组才是我们需要的本网站cookie信息:

在顶级域名中,cookie信息长度很长,个数还比较多,导致两组cookie信息总大小超过了uWSGI的默认设置

为了方便理解,这里用baidu做解释:我们先请求www.baidu.com,可以访问到百度首页:然后在url栏点击如下红色标记(我用的是chrome浏览器):

可以看到这样的结果:

 

 这里的baidi.com和www.baidu.com都指顶级域名,然后我们访问百度贴吧:https://tieba.baidu.com/index.html

同样点击

以上是关于invalid request block size: 4542 (max 4096)...skip引起的Nginx 502 Bad Geteway的主要内容,如果未能解决你的问题,请参考以下文章

codeblocks用时显示uses an invalid compiler,

Openstack: aborted: Block Device Mapping is Invalid

为啥我会收到 Invalid block tag: 'static' 错误?

使用 Apple JS 登录返回“invalid_request: Invalid redirect_uri”。

条纹支付:参数:错误:类型:invalid_request_error

条纹“invalid_request_error” - 卡号未从表单传递到模型方法