我正在开发一个电子商务平台,该平台为已登录的用户提供动态内容,但对于已注销的用户而言,许多页面(例如产品页面和类别页面)是相对静态的。
Rails 已配置为在访问时将特定注销页面的副本保存到磁盘。
我希望 nginx 在检测到注销用户时提供这些文件。我们在用户登录时为他们设置了一个 cookie,所以我希望我可以检查一下。
我的“理想” nginx 配置看起来像(在服务器块中):
location /my_location {
if (!$cookie_user_logged_in) {
try_files /cached_pages/$uri /cached_pages/$uri.html $uri $uri/index.html $uri.html @rails_application;
}
}
但是,这是无效的,因为据我所知,根据研究和错误消息,不能将 try_files 放在 if 中。
有没有办法用 nginx 做到这一点?
有人告诉我应该使用 Varnish 等其他工具来执行此操作。我也知道我可以在 Rails 中使用动作缓存和片段缓存来接近相同的目的。但是,在添加到技术堆栈或进一步投资开发之前,我想确定这是否是一个可行的选择。