由于请求头过大导致访问报错502

您所在的位置:网站首页 请求502错误 由于请求头过大导致访问报错502

由于请求头过大导致访问报错502

2024-07-01 10:16:07| 来源: 网络整理| 查看: 265

nginx错误日志内容 [error] 12917#0: *62380774 upstream sent too big header while reading response header from upstream.

用户浏览器请求到 Nginx 的请求头带的信息太多,超过了 Nginx 设置的大小。有可能是前端设置的Cookie过大、

解决办法 1、前端尽量使用少量的 Cookie 存储数据。 2、后台 Nginx 的 header 大小配置改大。 第一种解决方法需要调整前端代码 第二种方法需要在nginx配置文件的http段添加如下内容: proxy_buffer_size 128k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k;

 

补充知识

Nginx 默认的 header 长度上限是4k,如果超过了这个值,就会报错。

如果header头信息请求超过了,Nginx 会直接返回400错误

可以通过以下2个参数来调整 Nginx 的 header 上限

client_header_buffer_size 16k; large_client_header_buffers 4 16k;

下面讲讲这两个参数以及他们之间的关联关系:

对nginx处理header时的方法:

先处理请求的 request_line,之后才是 request_header。 这两者的 buffer分配策略相同。 先根据 client_header_buffer_size配置的值分配一个buffer,如果分配的buffer无法容纳 request_line/request_header,那么就会再次根据large_client_header_buffers配置的参数分配large_buffer,如果large_buffer还是无法容纳,那么就会返回414(处理request_line)/400(处理request_header)错误。 如果你的请求中的header都很大,那么应该使用client_header_buffer_size,这样能减少一次内存分配。 如果你的请求中只有少量请求header很大,那么应该使用large_client_header_buffers,因为这样就仅需在处理大header时才会分配更多的空间,从而减少无谓的内存空间浪费。

针对get请求,解决请求串过长的问题:

针对get请求,我们可以通过修改另外两个配置来解决请求串超长的问题:

client_header_buffer_size语法:

client_header_buffer_size size

默认值:1k使用字段:http, server这个指令指定客户端请求的http头部缓冲区大小绝大多数情况下一个头部请求的大小不会大于1k不过如果有来自于wap客户端的较大的cookie它可能会大于1k,Nginx将分配给它一个更大的缓冲区,这个值可以在large_client_header_buffers里面设置。

large_client_header_buffers语法:

large_client_header_buffers number size

默认值:large_client_header_buffers 4 4k/8k使用字段:http, server指令指定客户端请求的一些比较大的头文件到缓冲区的最大值,如果一个请求的URI大小超过这个值,服务器将返回一个"Request URI too large" (414),同样,如果一个请求的头部字段大于这个值,服务器将返回"Bad request" (400)。缓冲区根据需求的不同是分开的。默认一个缓冲区大小为操作系统中分页文件大小,通常是4k或8k,如果一个连接请求将状态转换为keep-alive,这个缓冲区将被释放。

那么有人就会觉得奇怪了,为什么修改http header的大小就能解决GET请求串过长的问题呢,这就要从HTTP协议的GET请求说起了,其实GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中)。

 


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭