有时在 nginx 的日志里会碰到如下的日志错误:
cache file "/usr/local/openresty/nginx/cache/c/0c/1eb7633e809b8306294a2a7da39c80cc" has too long header
一般什么情况下,才会出现这个错误,我的 proxy_buffer_size 这些设置都是用的默认值。
google 搜索了一下,看到 nginx 的源代码里有如下的代码:
https://github.com/phusion/nginx/blob/master/src/http/ngx_http_file_cache.c if (h->body_start > c->body_start) {
ngx_log_error(NGX_LOG_CRIT, r->connection->log, 0,
"cache file \"%s\" has too long header",
c->file.name.data);
return NGX_DECLINED;
}
http://hg.nginx.org/nginx/rev/6f97afc238de 这个网站也有相应的说明
我自己也测试了一下,proxy_buffer_size 这些设置都是用的默认值,然后请求一个 2M 的文件,proxy_cache 的文件夹里也有缓存的文件,但是访问都是正常的,我还是无法复现这种错误,不知道什么情况下会出现这个错误