NginX /清漆和自动caching

假设我们有一个WordPress站点example.com

在我们的网站上,有多种产品。 url看起来像这样:

 example.com/products/product-1/ example.com/products/product-2/ example.com/products/product-3/ etc... 

为了举例,我们假设如下:

  • 每个产品页面需要10秒钟才能生成。 无法提高硬件或软件性能,因此生成产品页面总是最less花费10秒。
  • 产品页面上的信息每小时更换一次。 我们假设每个产品页面内容每小时改变一次,并保持不变,直到下一个小时。
  • 我们不想触发最终用户的caching再生。 换句话说,如果一个小时过去了,caching无效,这个必须通过服务器上的一些进程,NginX,Varnish等进行检查和更新,而不是最终用户。 我们不想让约翰等10秒,他是一个不耐烦的人。
  • 我们不想在应用程序级别执行任何caching,不会执行任何memcahed操作,也不会执行任何wp_cache插件。 它必须通过NginX或Varnish或类似的东西。

我可以caching这些页面,并且每隔一个小时只能由NginX重新加载它们吗?

我需要清漆吗?

我将如何设置,以便所有页面自动重新caching?

如果可以同时清除所有的页面,那么你可以做一个简单的cronjob清空nginxcaching目录。

要进行更细粒度的清除,可以使用ngx_cache_purge模块,然后设置一个允许通过对nginx服务器的特定URL调用来清除文件的configuration。

然后你会设置cron作业,使这些调用nginx服务器。

为了使用ngx_cache_purge模块,你可能需要从源代码编译你的nginx。