如何在修改内容之前缓存页面

时间:2016-10-10 07:28:50

标签: express caching nginx varnish

我需要知道是否有任何方法使用Node.js(Express),Varnish,Nginx来缓存页面,直到用户修改了某些内容......

我的用户创建包含内容的网页,例如博客,我希望缓存未修改的所有网页,但如果用户在页面中再次输入新内容并更改内容,请刷新缓存...什么是最好的这样做的方法?

谢谢!

1 个答案:

答案 0 :(得分:2)

静态文件的常用技术是将文件的哈希值放在文件名中。然后,当您进行内容更改时,您的CDN / Web服务器缓存会将其识别为新文件,因为URI已更改。

对于动态内容, nginx 具有 proxy_cache_key 指令。因此,您可以定义应构成缓存命中或未命中的内容,例如:

proxy_cache_key "$host$request_uri $cookie_user";

使用cookie可以缓存动态页面,而无需提供为其他用户生成的内容。或者如directive documentation中所述,您可以根据url参数进行缓存:

proxy_cache_key "$uri$is_args$args";

您需要了解应用程序的工作方式并正确设置密钥。