对nginx代理到tomcat的400个错误请求,但对静态内容没有

时间:2017-01-31 00:52:41

标签: tomcat nginx cookies proxy

当我们的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标题大小之间发生了一些奇怪的事情。

1 个答案:

答案 0 :(得分:1)

这似乎不是一个nginx问题,因为它不太可能返回空页,这通常是经典的tomcat签名。

设置标题大小似乎取决于您正在使用的连接器: