nginx报502请求头过长问题upstream sent too big header while reading response header from upstream

与前端联调接口时,出现http状态码502错误
在这里插入图片描述
查看nginx报错日志:

upstream sent too big header while reading response header from upstream, client: 192.168.0.213, server: localhost, request: “GET /videogo/user-proxy/user/user_menu HTTP/1.1”, upstream: “http://192.168.0.200:8080/videogo/user-proxy/user/user_menu”, host: “192.168.0.200”, referrer: “http://192.168.0.200/”;
在这里插入图片描述

请求响应头过大,应该是前端向后台调用接口在header请求头中的token值过大造成的。

修改配置添加:

    proxy_buffer_size 128k;
    proxy_buffers 16 32k;
    proxy_busy_buffers_size 128k;

在这里插入图片描述

  • proxy_buffers:
    默认值: proxy_buffers 8 4k/8k
    上下文: http,server,location
    指定一个 request 的 buffer 的数量和大小。

  • proxy_buffer_size:
    默认值: proxy_buffer_size 4k/8k
    上下文: http,server,location
    指定后端 response 的 buffer 的大小。它是来自后端 response 的一部分,它包含 Headers,从 response 分离出来。它仅用于限定 headers 的 buffer 区,默认来说,该缓冲区大小等于指令 proxy_buffers所设置的;但是,你可以把它设置得更小.
    proxy_buffer_size 有一点特殊在于,无论 proxy_buffering 是否开启,proxy_buffer_size 都会起作用。

  • proxy_busy_buffers_size :
    默认值: proxy_busy_buffers_size proxy_buffer_size*2
    上下文: http,server,location,if
    忙时 buffer 的最大值。一个客户端一次只能从一个 buffer 中读取数据的同时,剩下的 buffer 会被放到队列中,等待发送到客户端,这个 directive 指定在这个状态下的 buffer 的大小。

重启nginx
./nginx -s reload
解决!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章