我们正计划更新 Nginx 缓存持续时间,我只是在浏览文档以确保当我遇到以下情况时不会出现任何问题:
max_size sets the upper limit of the size of the cache (to 10 gigabytes in this example). It is optional; not specifying a value allows the cache to grow to use all available disk space. When the cache size reaches the limit, a process called the cache manager removes the files that were least recently used to bring the cache size back under the limit.
来源:https://www.nginx.com/blog/nginx-caching-guide/
我们已经安装了一个单独的硬盘,该硬盘将仅用于缓存和 我很想不指定 max_size 属性,以便它只使用可用空间(如上所述),但它没有指定缓存管理器是否会在“limit”是磁盘的隐含大小。
有谁知道缓存管理器是否会处理这个问题,或者我们应该设置 max_size
(HDD 的大小)只是为了安全起见?
最佳答案
Nginx 来源显示文件缓存管理器是一个小 function由缓存管理器进程调用。它checks如果当前缓存大小大于 max_size,如果大于,则尝试从内部队列和磁盘中删除最后一个缓存节点。除非您在配置文件中重新定义它,否则 max_size
只是 set具有较大的平台相关常量 value .
所以看起来缓存管理器并没有做任何花哨的事情,比如尝试确定磁盘大小。它只是使用一个大的常量值,并让您担心后果。
因此,如果您不显式设置 max_size
,您最终可能会得到大量 errors以及行为不当的缓存。
另请注意,缓存管理器位于单独的进程中,它可能无法及时注意到缓存大小超出限制。因此,明智的做法是将 max_size
设置为比实际 HDD 大小至少小 100 Mb 的值。
关于caching - 当接近磁盘限制时,Nginx 缓存管理器会清除文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35461039/