了解 ngx_pagespeed FileCacheSizeKb

understanding ngx_pagespeed FileCacheSizeKb

在最简单的情况下,我们有一个网站并定义

pagespeed FileCachePath /var/ngx_pagespeed_cache;
pagespeed FileCacheSizeKb            2048000;

从而确保文件夹/var/ngx_pagespeed_cache占用的磁盘space不会超过2Gb。

好的,但在我的用例中有数十个网站,我希望它们有单独的缓存,这样我就可以刷新其中一个缓存而不会伤害其他缓存。

所以第一个问题是:FileCacheSizeKb 是设置了全局缓存大小限制还是针对每个虚拟主机?

如果我有两个网站,并且我没有为虚拟主机指定不同的 FileCachePath,这是否意味着 /var/ngx_pagespeed_cache 的大小现在受 4Gb 而不是 2Gb 的限制?

如果我指定两个不同的 FileCachePath,每个文件夹是否为 2Gb?

似乎应该是这样,因为我还可以在服务器块中指定单独的 FileCacheSizeKb 指令...但这并不明显,我还没有设法在文档中找到答案。

现在第二个问题是:如果我使用 memcached 作为外部缓存,FileCacheSizeKb 与 memcached 的限制有什么关系?

FileCacheSizeKb 仅适用于 FileCachePath 文件夹使用的磁盘 space 还是限制总缓存大小(文件夹 + memcached)?

例如,我的 memcached 限制是 1Gb,FileCacheSizeKb 是 2Gb - 这是否意味着 memcached 有一天会达到它的限制,但是缓存清理过程永远不会触发,因为 1Gb 低于 0.75 * FileCacheSizeKb?

好的,问题已经解决

如果其他人需要答案:

If you configure FileCachePath at the server{} level, you will get a separate cache for that vhost. If you configure it globally, you will get a single file system cache, shared between vhosts.

Limit form memcached and file cache are separated items. Objects < 1Mb are stored in memcached objects > 1Mb are stored in file cache, until theirs own limits.

此外,pagespeed 似乎没有针对 memcached 的清理机制,因此在 memcached 限制较低的情况下可能会出现问题,请小心