如何解决Nginx 常量错误:缓存文件太小
我使用 Nginx 作为反向代理来缓存我的 POST 请求并编写了以下配置:
http {
gzip on;
gzip_proxied any;
gzip_types text/plain application/json;
gzip_min_length 1000;
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=FLOWS:100m inactive=24h max_size=2g use_temp_path=off;
server {
listen 3200;
location /api/flows-page-v1 {
proxy_pass http://app:3000/api/flows-page-v1;
proxy_set_header Host $host;
proxy_buffering on;
proxy_cache FLOWS;
proxy_cache_methods POST;
proxy_cache_key "$request_uri|$request_body";
proxy_cache_valid 200 1d;
client_body_buffer_size 512k;
proxy_buffers 6 128k;
proxy_buffer_size 512k;
proxy_busy_buffers_size 512k;
proxy_cache_use_stale error timeout invalid_header updating
http_500 http_502 http_503 http_504;
add_header X-Cached $upstream_cache_status;
}
}
}
尝试在缓存第一个请求后第二次发送请求时出现以下错误:
[crit] 20#20: *2 cache file "/var/cache/nginx/6/fb/bee5677b8b46add7cfef279105773fb6" is too small
我登录到容器并验证此文件包含缓存内容。
从源代码来看,以下片段似乎会导致此错误,因此缓存 MISS (nginx/src/http/ngx_http_file_cache.c):
if ((size_t) n < c->header_start) {
ngx_log_error(NGX_LOG_CRIT,r->connection->log,"cache file \"%s\" is too small",c->file.name.data);
return NGX_DECLINED;
}
我应该怎么做才能避免这个错误?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。