与前端联调接口时,出现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
解决!!!