跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • nginx 的 cache file has too long header 问题
未分類
16 10 月 2020

nginx 的 cache file has too long header 问题

nginx 的 cache file has too long header 问题

資深大佬 : kokol 2

有时在 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 的文件夹里也有缓存的文件,但是访问都是正常的,我还是无法复现这种错误,不知道什么情况下会出现这个错误

大佬有話說 (2)

  • 資深大佬 : geekzu

    之前遇到过,查了一圈应该是 cache 文件失效 /损坏导致,这种状态 nginx 会重新取源做新的 cache

  • 主 資深大佬 : kokol

    @geekzu 谢谢,我用 ab 压测工具压测了下,有个上千并发的时候,就会有 cache file has too long header 的错误
    如果 nginx 响应的 body 比较大的时候,出现的概率也大。

    难道是在高并发情况下,nginx 从后端获取到文件之后,放入了一部分到缓存文件里,另一个请求过来发现文件不完整就重新去后端请求

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具