当我们的cookie达到一定的大小(超过7k)时,我们遇到了一个问题,当代理我们的tomcat时,nginx返回400 Bad Request并返回空响应。但是,当nginx提供静态内容时,这不会发生。我们已经尝试更新nginx配置以增加缓冲区大小,因此它应该处理高达16k的单个标头(我们还尝试在服务器级别设置它):
http {
# ...
client_body_buffer_size 32k;
client_header_buffer_size 16k;
large_client_header_buffers 4 16k;
# ...
}
我们还将tomcat max-http-header-size提升到了16k。如果我们将cookie大小增加到超过16k,我们仍然会得到400个错误请求,但响应有“请求标头或Cookie过大”#34;错误信息。我们无法弄清楚8k到16k标题大小之间发生了一些奇怪的事情。
答案 0 :(得分:1)
这似乎不是一个nginx问题,因为它不太可能返回空页,这通常是经典的tomcat签名。
设置标题大小似乎取决于您正在使用的连接器: