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从原有的 ...
随机推荐
- noip第11课作业
1. 数字比较 定义一个函数check(n,d),让它返回一个布尔值,如果数字d在正整数n的某位中出现则返回true,否则返回false. 例如:check(325719,3)==true:ch ...
- Linux应用程序中使用math库报undefined reference to `sin'等
出现该问题是因为在Linux中,sin,sqrt等函数是在libm.so库文件中,并非在math.h中. 解决办法:在Ubuntu的gcc编译环境下,直接使用lm参数即可,例如gcc -o Gen G ...
- hdu 4993
http://acm.hdu.edu.cn/showproblem.php?pid=4993 满足ax + by = c的x,y对数 水题,暴力 #include <cstdio> #in ...
- 哈希连接(hash join) 原理
哈希连接(hashjoin) 访问次数:驱动表和被驱动表都只会访问0次或1次. 驱动表是否有顺序:有. 是否要排序:否. 应用场景: 1. 一个大表,一个小表的关联: ...
- Git小技巧:VIM中如何填写注释信息
使用Git命令行工具的时候,经常一不小心就进入VIM界面,例如git commit没有填写任何描述信息.对于习惯了Windows可视化操作界面的用户,可能一下子会觉得无所适从,只能在键盘上一顿短按.下 ...
- 如何将Jenkins multiline string parameter的多行文本优雅的保存为文件
[现象]: 使用multi-line string parameter获取的文本变量,在jenkins shell里面显示为单行文本(空格分割). [问题]:能否转换为多行文本,并存入文件. [解决方 ...
- 设计模式之外观模式(Facade Pattern)
一.什么是外观模式? 简单的说,外观模式是用来简化接口的. 通常,我们觉得一个子系统不好用,可能是因为它提供的外部接口太接近低层组件,让我们用起来感到很麻烦. 因为我们不需要知道内部细节,我们只想要一 ...
- [JS] Ajax请求会话过期处理
对于页面来说,处理session过期比较简单,一般只需在过滤器里面判断session用户是否存在,不存在则跳转页面到登陆页即可. 对于Ajax请求来说,这个办法则无效,只能获取到登录页的html代码. ...
- 基于RBAC设计的通用权限管理框架
RoadFlow拥有基于RBAC设计的通用权限管理框架.不仅可以基于角色组进行菜单授权,还可以根据组织架构中部门.岗位.人员等进行细分的权限管理分配. 如果一个人有重复菜单权限,则将自动合并. 系统资 ...
- 将一个byte[]数组根据大小拆分为若干小byte[]数组方法
/// <summary> /// 将大数组拆分为多个小数组 /// </summary> /// <param name="superbyte"&g ...