nginx proxy_buffer_size 解决后端服务传输数据过多,其实是header过大的问题

本文解决了Nginx代理配置中因Header过大导致的502错误问题,通过调整proxy_buffer_size等参数成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

原创 2017年03月17日 17:46:57
 

nginx proxy_buffer_size 解决后端服务传输数据过多,其实是header过大的问题

这三个参数已设置就搞定了额

proxy_buffer_size 64k;
proxy_buffers   4 32k;
proxy_busy_buffers_size 64k;
  • 1
  • 2
  • 3

本着精益求精的精神我翻了官网
官网解释

总体来说我还是没懂。我把报错信息放出来,以后用得着。
开发说nginx502了,后端访问jesery没问题

不行
curl -i -v "test.lebi.letv.cn/report/rest/saiku/api/query/7C53220D-A870-1FE3-9353-4A6F967F25CB/result/metadata/hierarchies/%5BDM_REC.DIM_LIVE_STATION%5D.%5BDM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME%5D/levels/DM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME?result=false&_=1489736122190" 可以 curl -i -v "http://10.142.165.45:8080/report/rest/saiku/api/query/7C53220D-A870-1FE3-9353-4A6F967F25CB/result/metadata/hierarchies/%5BDM_REC.DIM_LIVE_STATION%5D.%5BDM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME%5D/levels/DM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME?result=false&_=1489736122190" 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

日志对比

返回502
"10.73.137.12","[17/Mar/2017:16:32:08 +0800]","HTTP/1.1","-","GET","/report/rest/saiku/api/query/7C53220D-A870-1FE3-9353-4A6F967F25CB/result/metadata/hierarchies/%5BDM_REC.DIM_LIVE_STATION%5D.%5BDM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME%5D/levels/DM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME?result=false&_=1489736122190","502","http://test.lebi.letv.cn/report/rest/saiku/api/query/7C53220D-A870-1FE3-9353-4A6F967F25CB/result/metadata/hierarchies/%5BDM_REC.DIM_LIVE_STATION%5D.%5BDM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME%5D/levels/DM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME?result=false&_=1489736122190","172","0.157","10.142.165.45:8080","-","curl/7.35.0","0.157","329","328" 正常了 "10.73.137.12","[17/Mar/2017:16:32:47 +0800]","HTTP/1.1","-","GET","/report/rest/saiku/api/query/7C53220D-A870-1FE3-9353-4A6F967F25CB/result/metadata/hierarchies/%5BDM_REC.DIM_LIVE_STATION%5D.%5BDM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME%5D/levels/DM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME?result=false&_=1489736122190","200","http://test.lebi.letv.cn/report/rest/saiku/api/query/7C53220D-A870-1FE3-9353-4A6F967F25CB/result/metadata/hierarchies/%5BDM_REC.DIM_LIVE_STATION%5D.%5BDM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME%5D/levels/DM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME?result=false&_=1489736122190","1342118","4.350","10.142.165.45:8080","-","curl/7.35.0","0.180","329","1346306" 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

我测了下,返回的json数据大约1.3M,可能是返回值太大,超过了阈值,但是超过了哪个呢,比较纠结。

查看error日志得到upstream sent too big header while reading response header from upstream,说header太大了。好好学习下header

这里写图片描述

2017/03/17 16:32:08 [error] 17441#0: *403548696 upstream sent too big header while reading response header from upstream, client: 10.73.137.12, server: test.lebi.letv.cn, request: "GET /report/rest/saiku/api/query/7C53220D-A870-1FE3-9353-4A6F967F25CB/result/metadata/hierarchies/%5BDM_REC.DIM_LIVE_STATION%5D.%5BDM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME%5D/levels/DM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME?result=false&_=1489736122190 HTTP/1.1", upstream: "http://10.142.165.45:8080/report/rest/saiku/api/query/7C53220D-A870-1FE3-9353-4A6F967F25CB/result/metadata/hierarchies/%5BDM_REC.DIM_LIVE_STATION%5D.%5BDM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME%5D/levels/DM_REC.DIM_LIVE_STATION.LIVE_STATION_NAME?result=false&_=1489736122190", host: "test.lebi.letv.cn"
  • 1
 
server { listen 80; server_name svn.freetech.com; # 完全解除请求体限制 client_max_body_size 0; client_body_buffer_size 5120m; # 强制全磁盘缓冲 client_body_temp_path /mass_storage/nginx_temp; # 必须指定容量存储路径 location / { proxy_pass http://10.179.60.132:18080; # 解除代理缓存限制 proxy_max_temp_file_size 0; proxy_request_buffering off; # 禁用代理请求缓冲 # 超时扩展(单位:秒) proxy_connect_timeout 3600; # 连接超时1小时 proxy_read_timeout 86400; # 读取超时24小时 proxy_send_timeout 86400; # 缓冲区优化 proxy_buffers 8 64k; # 最小化内存占用 proxy_buffer_size 128k; # 保持基础头缓冲 # 头信息透传 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name svnedge.freetech.com; client_max_body_size 0; client_body_buffer_size 0; client_body_temp_path /mass_storage/nginx_temp; location / { proxy_pass http://10.179.60.132:3343; proxy_max_temp_file_size 0; proxy_request_buffering off; proxy_connect_timeout 3600; proxy_read_timeout 86400; proxy_send_timeout 86400; proxy_buffers 8 64k; proxy_buffer_size 128k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 18080; server_name svn.freetech.com; client_max_body_size 0; client_body_buffer_size 0; client_body_temp_path /mass_storage/nginx_temp; location / { proxy_pass http://10.179.60.132:18080; proxy_max_temp_file_size 0; proxy_request_buffering off; proxy_connect_timeout 3600; proxy_read_timeout 86400; proxy_send_timeout 86400; proxy_buffers 8 64k; proxy_buffer_size 128k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 分析一下改配置有问么问题
03-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值