On 05/03/13 18:01, Maxim Dounin wrote:
> Hello!
>
>
> You've configured two distinct caches to use single directory.
> This is not how it's expected to work.
>
> You should use distinct directories for each cache you configure.
> If you want different locations to use the same cache - just use
> the same cache in the proxy_cache directive.
>
> [...]
>
>> Is this bad practice to share caches among subdomains? Is sharing the cache
>> the reason why I'm getting unlink() errors?
>
> It's ok to use the same cache for different locations/servers.
> But it's really bad idea to configure multiple caches in the same
> directory, and this is what causes your problems.
>
Maxim,
I have just seen a similar situation using fastcgi cache. In my case I
am using the same cache (but only one cache) for several server/location
blocks. The system is a fairly basic nginx set up with four upstream
fastcgi servers and ip hash. The returned content is cached locally by
nginx. The cache is rather large but I wouldn't think this would be the
cause.
Relevant config:
http {
....
upstream fastcgi_backend {
ip_hash;
server 10.0.2.1:xxxx;
server 10.0.2.2:xxxx;
server 10.0.2.3:xxxx;
server 10.0.2.4:xxxx;
keepalive 8;
}
fastcgi_cache_path /var/nginx/fcgi_cache levels=1:2
keys_zone=one:512m max_size=250g inactive=24h;
....
}
server1 {
....
server_name domain1.com;
....
location ~ \.blah$ {
fastcgi_pass fastcgi_backend;
include /usr/local/etc/nginx/fastcgi_params;
fastcgi_buffers 64 4k;
fastcgi_read_timeout 120s;
fastcgi_keep_conn on;
fastcgi_send_timeout 120s;
fastcgi_cache one;
fastcgi_cache_key $scheme$request_method$host$request_uri;
fastcgi_cache_lock on;
fastcgi_cache_lock_timeout 5s;
fastcgi_cache_methods GET HEAD;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale error updating;
fastcgi_cache_valid 200 302 60m;
fastcgi_cache_valid 301 12h;
fastcgi_cache_valid 404 5m;
}
....
}
The other sever/location blocks are pretty much identical insofar as
fastcgi and cache are concerned.
When I upgraded nginx using the "on the fly" binary upgrade method, I
saw almost 400,000 lines in the error log that looked like this:
2013/05/04 17:54:25 [crit] 65304#0: unlink()
"/var/nginx/fcgi_cache/7/2e/899bc269a74afe6e0ad574eacde4e2e7" failed (2:
No such file or directory)
2013/05/04 17:54:25 [crit] 65304#0: unlink()
"/var/nginx/fcgi_cache/7/2e/42adc8a0136048b940c6fcaa76abf2e7" failed (2:
No such file or directory)
2013/05/04 17:54:25 [crit] 65304#0: unlink()
"/var/nginx/fcgi_cache/7/2e/c3656dff5aa91af1a44bd0157045d2e7" failed (2:
No such file or directory)
2013/05/04 17:54:25 [crit] 65304#0: unlink()
"/var/nginx/fcgi_cache/7/2e/de75207502d7892cf377a3113ea552e7" failed (2:
No such file or directory)
2013/05/04 17:54:25 [crit] 65304#0: unlink()
"/var/nginx/fcgi_cache/7/2e/c2205e6a3df4f29eb2a568e435b2b2e7" failed (2:
No such file or directory)
2013/05/04 17:54:25 [crit] 65304#0: unlink()
"/var/nginx/fcgi_cache/7/2e/6ccaa4244645e508dad3d14ff73ea2e7" failed (2:
No such file or directory)
2013/05/04 17:54:25 [crit] 65304#0: unlink()
"/var/nginx/fcgi_cache/7/2e/76b4b811553756a2989ae40da863d2e7" failed (2:
No such file or directory)
2013/05/04 17:54:25 [crit] 65304#0: unlink()
"/var/nginx/fcgi_cache/7/2e/53d40a6399ba6dcf08bc0a52623932e7" failed (2:
No such file or directory)
2013/05/04 17:54:25 [crit] 65304#0: unlink()
"/var/nginx/fcgi_cache/7/2e/68ff8b00492991a2e3ba5ad7420d42e7" failed (2:
No such file or directory)
2013/05/04 17:54:25 [crit] 65304#0: unlink()
"/var/nginx/fcgi_cache/7/2e/19c079c9a1e0bcacb697af123d47f2e7" failed (2:
No such file or directory)
The backend logs show nothing of note.
--
Jim Ohlstein
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx