来自 Varnish 的 Stale-while-revalidate 缓存替换

elw*_*ood 4 nginx plesk varnish http-caching

我们目前正在将我们的服务器迁移到一个新的服务器,其中 PLESK 12.5 不支持我们的 PHP 应用程序的 Varnish 缓存。

我们使用 Varnish,主要是为了 'stale-while-revalidate' 功能,这样我们就可以发送整个页面或部分(使用 ESI),而无需等待任何客户在缓存刷新时等待。

对于类似的缓存,有没有 Varnish 的替代品?可以在 PLESK 或任何 PHP/服务器缓存上运行的另一个“程序”?

PLESK 带有 NGINX,但它似乎没有提供 'stale-while-revalidate' 功能;我也知道 PLESK 不支持 Squid。

Ole*_*kin 7

实际上 nginx 通过proxy_cache_use_stale提供 stale-while-revalidate并且Nginx 从 1.11.10 开始支持 Cache-Control 扩展

location / {
    ...
    proxy_cache_use_stale updating error timeout http_500 http_502 http_503 http_504;
    proxy_cache_background_update on;
}
Run Code Online (Sandbox Code Playgroud)

是的,它不支持 Cache-Control 扩展,因此如果您的应用程序不在 Cache-Control 标头中使用 stale-while-revalidate nginx 就足够了。