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://blog.csdn.net/qq_32239417/article/details/62228624

原文地址:https://www.cnblogs.com/wangbaojun/p/10678585.html

时间: 2024-08-02 01:05:26

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

uwsgi部署到nginx出现invalid request block size: 4161 (max 4096)...skip问题

使用Flask制作一个网页平台之后,登陆使用openid登陆,然后使用uwsgi服务部署到nginx上,运行起来没有什么问题,但是偶尔在登陆的时候出现502的错误,一般登陆成功之后后面的任何操作都不会出错. 查看uwsgi的log之后,发现出现这样的一个错误: invalid request block size: 4161 (max 4096)...skip 之前一个没有去详细搜索过,也没有具体去看错误产生的原因,因为只是偶尔出现,并且有时候重试的时候是可以登陆的,所以没有太多的去关注,今天因

uwsgi出现invalid request block size: 21573 (max 4096)...skip解决办法

buffer-size uwsgi内部解析的数据包大小,默认4k. 如果准备接收大请求,你可以增长到64k. 允许uwsgi接收到32k,更大的会被丢弃. xweb.ini [uwsgi] socket = 127.0.0.1:9000 pidfile=/run/uwsgi.pid chdir = /xspeeder/xweb/ wsgi-file = xweb/wsgi.py master = true buffer-size = 65536 processes = 1 #threads =

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 size 67108864 (probably corrupt file) 这类异常,如图: 这是由于lzo文件数过多,hive执行时默认是不会自动先合并lzo等压缩文件再计算,需要设置hive对应的参数,告诉它在执行计算之前,先合并较多的压缩文件 在执行hive的sql之前需要加上 set hive

4K Block Size的Device和 Aligned IO

http://www.cnblogs.com/cenalulu/p/3587006.html 背景:最近采购了一批新的服务器,底层的存储设备的默认physical sector size从原有的 512B 改为了 4K. 装完系统以后,在做数据库物理备份恢复时xtrabackup报了这么一个错.但是同样的备份在512B sector size的老系统上却可以恢复. 报错如下: InnoDB: Error: tried to read 2048 bytes at offset 0 0.InnoDB

Oracle Log Block Size

Although the size of redo entries is measured in bytes, LGWR writes the redo to the log files on disk in blocks. The size of redo log blocks is fixed in the Oracle source code and is operating system specific. Oracle's documentation uses the term "op

for循环中删除map中的元素,valgrind检测提示error:Invalid read of size 8

1 #include <iostream> 2 #include <map> 3 4 using namespace std; 5 6 class A 7 { 8 public: 9 typedef std::map<int, string> myMap; 10 11 void mapInsert(int i, string s) 12 { 13 map.insert(std::make_pair(i, s)); 14 } 15 16 void deleteMap()

ORA-00349: failure obtaining block size for &amp;#39;+fra_grp01_d

有一次恢复库以后,open时报错ORA-00349,例如以下.最后通过删除这个log group解决. SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-00349: failure obtaining block size for '+fra_grp01_d select group#,name,bytes,status from v$logfile; SQL> /

ORA-00349: failure obtaining block size for &#39;+fra_grp01_d

有一次恢复库以后,open时报错ORA-00349,如下.最后通过删除这个log group解决. SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-00349: failure obtaining block size for '+fra_grp01_d select group#,name,bytes,status from v$logfile; SQL> / 1

“Invalid maximum heap size” when running Maven

运行mvn package,报错: Invalid maximum heap size: -Xmx512m. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 解决方法一: alter jvm.config in .mvn directory ( it is in controller directory ). study mvn.