首页 > 系统管理 > Nginx 400错误排查:HTTP头/Cookie过大

Nginx 400错误排查:HTTP头/Cookie过大

2009年2月28日

今天有人汇报nginx的HTTP400错误,而且这个HTTP400错误并不是每次都会出现的,查了一下发现nginx 400错误是由于request header过大,通常是由于cookie中写入了较长的字符串所引起的。

解决方法是不要在cookie里记录过多数据,如果实在需要的话可以考虑调整在nginx.conf中的client_header_buffer_size(默认1k)
若cookie太大,可能还需要调整large_client_header_buffers(默认4k),该参数说明如下:
请求行如果超过buffer,就会报HTTP 414错误(URI Too Long)
nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的HTTP错误(Bad Request)。

VN:F [1.9.22_1171]
Rating: 1.5/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
400错误排查:HTTP头/Cookie过大, 1.5 out of 10 based on 2 ratings

系统管理

  1. aray
    | #1

    apache的如何看?

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
  2. inetdemon
    | #2

    apache下的HTTP 400有很多可能,包括mod_security对过多请求数或者被修改过的头信息都可能返回HTTP 400,要视情况而定。查看头信息IE下可以用HTTPWatch,或者用Firefox下的一些Web开发测试插件
    如果是cookie的问题可以设置httpd.conf:
    LimitRequestFieldSize 限制客户端发送的请求头的字节数
    LimitRequestLine 限制接受客户端发送的HTTP请求行的字节数
    默认值是8190,但是注意改太大会影响服务器性能。

    VN:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
  3. syxlw
    | #3

    client_header_buffer_size、large_client_header_buffers 具体如何设置呢?一般推荐多少?(系统的PageSize为16K)

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

This blog is kept spam free by WP-SpamFree.