对于特定的 URL,我想为静态资产设置缓存控制标头,例如/images/*
,/js/*
等,告诉浏览器使用本地缓存 30 天而不是获取新版本。如何通过 haproxy 配置完成此操作?
在这被误解之前,这不是如何在 HAProxy 中缓存内容的重复。我只是希望 haproxy 将标头附加到某些资产的请求中,告诉浏览器使用本地缓存版本(如果可用),但仅限于 1 个特定域。
对于特定的 URL,我想为静态资产设置缓存控制标头,例如/images/*
,/js/*
等,告诉浏览器使用本地缓存 30 天而不是获取新版本。如何通过 haproxy 配置完成此操作?
在这被误解之前,这不是如何在 HAProxy 中缓存内容的重复。我只是希望 haproxy 将标头附加到某些资产的请求中,告诉浏览器使用本地缓存版本(如果可用),但仅限于 1 个特定域。
您可能可以在一行中完成此操作,但更清楚的是:
解释:
acl
关键字告诉 haproxy 如果条件满足,它应该将请求添加到特定的 acl 。path_dir
匹配子目录,而path
匹配整个路径。也许path_sub
在这里更好,它在路径中查找子字符串。use_backend
如果请求在 ACL 中,则将请求定向到特定后端。其他所有内容都转到默认后端。这样,您以后可以轻松地添加更多路径,或者如果您愿意,甚至可以稍后将这些请求指向不同的服务器。
此外,还可以按域过滤: