我们有 Apache 服务器,用于代理来自应用服务器和旧版 Web 服务器的内容。我们使用负载均衡器启用了缓存,但缓存的行为并不像我们预期的那样。以下是我们的设置:
我们正在专门为应用服务器提供的页面设置缓存标头,使用方法如下:
<Location ~ /(appDir1|appDir2|appDir3)>
Header set Cache-Control max-age=3600,public
</Location>
这很好用。
在旧服务器上,系统管理员已在运行旧站点的 Apache 虚拟主机中进行了此项设置:
Header set Cache-Control max-age=0,private,no-cache
但是,我们的负载均衡器仍在缓存我们代理的旧内容。
当我们访问http://appHost/legacyDir1- 我们会看到缓存内容。当我们访问http://legacyHost/legacyDir1- 我们会看到非缓存内容。至少在理论上,我们期望看到非缓存内容http://appHost/legacyDir1。
知道我们可能遗漏了什么吗……?
知识管理
答案1
问题出在负载均衡器设置上。必须配置 LB 以匹配需要缓存的各种页面。