【发布时间】:2012-03-16 06:38:40
【问题描述】:
我只想将生成的资源提供给具有管理权限的用户,并且我希望 Varnish 为我缓存它,这样后端就不必在每次请求时都重新生成它。我也不想在后端执行缓存,因为我有 Varnish 用于此目的。
这是我的后端所做的伪代码:
if (authenticated(cookie))
{
if (stale)
{
regenerate_and_send()
}
else
{
not_modified()
}
}
else
{
access_denied()
}
所以我正在考虑 Varnish 执行验证(条件 GET)并以“未修改”、“拒绝访问”或“200 OK”HTTP 状态响应后端(当然是在最后一种情况下重新生成资源)。
我需要 Varnish 将 cookie 传递到后端,但在将资源存储在缓存中时忽略 cookie,因此只存储一个副本。
我该怎么做?
执行验证和编写后端逻辑很容易。如何在 Varnish 中处理 cookie,以便它们不会影响缓存但仍会传递到后端?
【问题讨论】: