Welcome! Log In Create A New Profile

Advanced

Nginx cache returns MISS after a few hours, can't be set up to cache "forever"

Posted by Anonymous User 
Hi,

I am trying to cache files "forever". Unfortunately in about 2-6 hours the cache starts to return MISS again. This is the setting:

---

proxy_cache_path /var/cache/nginx-cache levels=1:2 keys_zone=mycache:10m max_size=20g inactive=10y;

proxy_cache_valid 10y;

"Expires" header returned by the upstream is set to the year 2027 and "Cache-Control" to max-age=315360000 (i.e. 10 years).

---

I suppose, if was the expiry time the reason, it would have return EXPIRED, but not MISS.

The cache fills up to ~5 GB (from allowed 20 GB), so the space should not be the problem.

I have tried to remove all cached files and restart nginx, but it did not help.

For testing I use plain curl GET requests (without ETag, Vary, etc. headers) - always the same.

Thank you for any hint,
Jan Molic
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Hi,

On Tue, Nov 28, 2017 at 12:32:32PM +0100, mig@1984.cz wrote:
> Hi,
>
> I am trying to cache files "forever". Unfortunately in about 2-6 hours the cache starts to return MISS again. This is the setting:
>
> ---
>
> proxy_cache_path /var/cache/nginx-cache levels=1:2 keys_zone=mycache:10m max_size=20g inactive=10y;
>
> proxy_cache_valid 10y;
>
> "Expires" header returned by the upstream is set to the year 2027 and "Cache-Control" to max-age=315360000 (i.e. 10 years).
>
> ---
>
> I suppose, if was the expiry time the reason, it would have return EXPIRED, but not MISS.
>
> The cache fills up to ~5 GB (from allowed 20 GB), so the space should not be the problem.
>
> I have tried to remove all cached files and restart nginx, but it did not help.
>
> For testing I use plain curl GET requests (without ETag, Vary, etc. headers) - always the same.

It's not only disk size that matters.
Cache entries may also be evicted when approaching the keyz_zone size.
Try increasing the zone size.

--
Roman Arutyunyan
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Can you count the number of files that are in your cache and whether or not it's changing with time?
Then compare with the number of unique cache keys (from your web server log)

When the server starts returning a MISS - does it only do this for newer objects that haven’t been requested before?
Does it happen for any objects that had previously been returned as a HIT?



> On Nov 28, 2017, at 6:32 AM, mig@1984.cz wrote:
>
> Hi,
>
> I am trying to cache files "forever". Unfortunately in about 2-6 hours the cache starts to return MISS again. This is the setting:
>
> ---
>
> proxy_cache_path /var/cache/nginx-cache levels=1:2 keys_zone=mycache:10m max_size=20g inactive=10y;
>
> proxy_cache_valid 10y;
>
> "Expires" header returned by the upstream is set to the year 2027 and "Cache-Control" to max-age=315360000 (i.e. 10 years).
>
> ---
>
> I suppose, if was the expiry time the reason, it would have return EXPIRED, but not MISS.
>
> The cache fills up to ~5 GB (from allowed 20 GB), so the space should not be the problem.
>
> I have tried to remove all cached files and restart nginx, but it did not help.
>
> For testing I use plain curl GET requests (without ETag, Vary, etc. headers) - always the same.
>
> Thank you for any hint,
> Jan Molic
> _______________________________________________
> nginx mailing list
> nginx@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Sorry, only registered users may post in this forum.

Click here to login