好吧,我想让我的网站一直在线。
一种方法:是否可以使用nginx proxy_pass缓存整个网站一段登录时间?如何? 实际上,我的意思是,如果后端出现故障或无法正常工作,我们仍然可以使用缓存供人们访问我的网站。
另一种方法:爬虫?
或像搜索引擎这样的快照技术已缓存?
答案 0 :(得分:0)
proxy_pass实际上不可能缓存网站(除非您拥有在另一端具有网站缓存的实际应用程序),因为它所做的只是将请求传递给另一个端点。抓取工具通常是指通过网站查找链接的搜索引擎机器人,因此它们可以为托管该抓取工具的搜索引擎索引网站上的所有信息。
“快照技术”有效,通常由CDN(例如Cloudflare / Akamai)创建,可能正是您所需要的。 CDN还可用于许多其他用途,但我想您最感兴趣的是如果网站偶尔离线也能够显示其副本。
还有另一个选项是在NGINX中设置浏览器缓存标头,它指示用户的浏览器显示网站的缓存副本,直到缓存过期才更新。但是,不利的一面是,即使您的网站在线,您的用户也将无法看到您网站的实时副本,并且他们必须在缓存时间内访问您的网页才能对其进行缓存。
一个例子:
location ~* \.(?:js|css|html)$ {
expires 1d; #users' browsers cache it for a day
add_header Pragma public;
add_header Cache-Control "public";
}