<div dir="ltr"><div>Hi,<br><br></div>I'm using nginx as a reverse proxy with caching on a ramdisk<br>/var/cache/nginx is a tmpfs of the size 1800m.<br><div><div>And this is my proxy_cache_path line in nginx:<br><br>proxy_cache_path /var/cache/nginx levels=1:2 use_temp_path=off keys_zone=default:50m inactive=120m max_size=1500m;<br><br>This is the error message when the ramdisk is filled.<br><br>[crit] 1460#0: *14844194 pwritev() "/var/cache/nginx/temp/3/12/0001578123" failed (28: No space left on device) while reading upstream, client: XXX, server: , request: "GET /xxx.jpg HTTP/1.1", upstream: "<a href="http://127.0.0.1:81/xxx.jpg">http://127.0.0.1:81/xxx.jpg</a>", host: "<a href="http://xxx.com">xxx.com</a>", referrer: "<a href="http://xxx.com/">http://xxx.com/</a>"<br><br></div><div><br>I see two problems here.<br></div><div>1. Why didn't max_size work and clear the space in the tmpfs mount when it got past 1500m?<br></div><div>2. Why doesn't nginx just bypass the cache and serve from upstrean when the mount is full instead of hard failing?<br><br></div><div>And what solutions do I have?<br></div><div>Do I increase the ramdisk/tmpfs size?<br></div><div>Do I decrease the max_size?<br></div><div>Should I run a external cronjob that restarts nginx when the ramdisk is more than 1500MB?<br><br></div><div>Or is nginx proxy_cache_path broken and do I need to change to another solution like squid or varnish?<br><br></div></div></div>