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的更多相关文章
- uwsgi 服务 invalid request block size: 4161 (max 4096)...skip问题的解决
问题报错: invalid request block size: 4161 (max 4096)...skip 问题原因:默认的uwsgi分配一个小的buffer(4k)来接收每个请求的头信息,如果 ...
- uwsgi出现invalid request block size: 21573 (max 4096)...skip解决办法
buffer-size uwsgi内部解析的数据包大小,默认4k. 如果准备接收大请求,你可以增长到64k. 允许uwsgi接收到32k,更大的会被丢弃. xweb.ini [uwsgi]socket ...
- 遇到502错误,invalid request block size 解决方法
uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 因为业务需求,要最多输入350个汉字,在 ...
- uwsgi错误invalid request block size
uwsgi错误invalid request block size 今天使用uwsgi启动django代码,然后打开浏览器输入http://localhost:8000/admin.后台出现下面错误 ...
- 报错解决——uwsgi错误invalid request block size
uwsgi错误invalid request block size 使用uwsgi启动django代码,然后打开浏览器输入http://localhost:8000/admin.后台出现下面错误 in ...
- uwsgi配置文件的一些细节,uwsgi错误invalid request block size
[uwsgi] #socket = #这种是使用代理方式访问的,不能直接输入端口访问,要搭配其他的HTTP服务比如NGINX,设置反向代理 http =: #这种是直接可以输入IP端口访问 modul ...
- hive对于lzo文件处理异常Caused by: java.io.IOException: Compressed length 842086665 exceeds max block size 67108864 (probably corrupt file)
hive查询lzo数据格式文件的表时,抛 Caused by: java.io.IOException: Compressed length 842086665 exceeds max block s ...
- pg_basebackup: invalid tar block header size
问题: 在使用pg_basebackup搭建备节点时,由于pg_basebackup本身使用的是int整型来保存传输的数据大小,当传输的数据大于4G的话,整数就会溢出,进而报出:pg_baseback ...
- 4K Block Size的Device和 Aligned IO
http://www.cnblogs.com/cenalulu/p/3587006.html 背景:最近采购了一批新的服务器,底层的存储设备的默认physical sector size从原有的 ...
随机推荐
- PAT甲 1009. Product of Polynomials (25) 2016-09-09 23:02 96人阅读 评论(0) 收藏
1009. Product of Polynomials (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...
- Gridview的RowDataBound事件可以做很多事情
protected void gvTest_RowDataBound(object sender, GridViewRowEventArgs e) { //如果是绑 ...
- Win7_Ultimate + VS2010 + openGL 配置
Win7_Ultimate + VS2010 + openGL 配置 0. 前言 OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. (1)与C语言紧密结合. O ...
- Useful Field of View (UFOV)
IE8不支持canvas,使用excanvas.js,js代码需要放在window.onload=function(){...}内,$(docuemnt).ready(function(){...}) ...
- c3p0----获取不到链接
最近别人的项目,因为经常获取不到链接出错,我好奇也就跟着摆弄了一把,使用的插件是:c3p0+spring+ibatiS,当然事务管理部分也配置上了配置如下: <bean id="dat ...
- 微软在线实验室启用谷歌的reCAPTCHA,我们又丢失了一个好东东
在没有启用reCAPTCHA的日子,我们可以在微软的在线实验室www.microsoft.com/handsonlabs 中找到许许多多的文档.视频.动手实验环境. 不需要任何硬件.技术,就可以快速的 ...
- DBCC--CHECKIDENT
检查活或重置自增键的标识值,可以使用NORESEED 来检查当前标识值和标识列在表中的最大值. 如果当前标识值与表中数据冲突或希望将标识值重置到一个较小的值时,可以只用RESEED 来设置 DBCC ...
- DAC--使用DAC来导出数据库脚本
//============================================== //功能介绍:使用DAC来导出数据库脚本 //注意事项: //1.本程序涉及到的DLL有: // - ...
- ASP.NET Core 2 学习笔记(二)生命周期
要了解程序的运行原理,就要先知道程序的进入点及生命周期.以往ASP.NET MVC的启动方式,是继承 HttpApplication 作为网站开始的进入点,而ASP.NET Core 改变了网站的启动 ...
- Sql Server字符串拆分(Split)方法汇总
详细链接:https://shop499704308.taobao.com/?spm=a1z38n.10677092.card.11.594c1debsAGeak--方法0:动态SQL法 declar ...