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
同样点击🔒图标选择cookie后看到如下结果:
和我们遇到的情况是一样的,这是因为二级域名会共享顶级域名的cookie,在请求中一并发送,可以通过F12调试看到,我们刷新贴吧首页的请求附带的cookie信息:
其中一部分是顶级域名baidu.com的cookie:
另一部分是tieba.baidu.com的cookie信息:
这里涉及到的更多知识点可以参考以下文章:
https://www.geek-share.com/detail/2700566258.html
- uwsgi部署到nginx出现invalid request block size: 4161 (max 4096)...skip问题
- uwsgi部署到nginx出现invalid request block size: 4161 (max 4096)...skip问题
- uwsgi出现invalid request block size: 21573 (max 4096)...skip解决办法
- invalid request block size: 21573 (max 4096)...skip错误原因
- uwsgi 服务 invalid request block size: 4161 (max 4096)...skip问题的解决
- uwsgi 服务 invalid request block size: 4161 (max 4096)...skip问题的解决
- invalid request block size: 21573 (max 4096)...skip错误原因
- invalid request block size: 4129 (max 4096)...skip
- 遇到502错误,invalid request block size 解决方法
- 遇到502错误,invalid request block size 解决方法
- uwsgi invalid request block size: 的解决办法
- nginx的client_max_body_size解决nginx+php上传大文件的问题
- Nginx出现“ 413 (499 502 404) Request Entity Too Large”错误解决方法
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
- 解决由FastCGI Buffer不够引起的Joomla 在Nginx下出现 502 Bad Gateway 错误
- nginx 1.4.6 设置上传大小 client_max_body_size
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题(报错 http 413 error)
- mongodb导数据是的错误:[conn56] AssertionException handling request, closing client connection: 10334 Invalid BSONObj size: -1431247360 (0x00E6B0AA) first ele
- nginx 关于client_max_body_size client_body_buffer_size配置
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题