我正在开发一个电子商务平台,该平台为登录用户提供动态内容,但对于已注销用户,许多页面(如产品页面和类别页面)都是相对静态的。
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来实现这个目标?
我被告知我应该使用其他工具,如清漆。我也知道我可以在Rails中使用动作缓存来做事,并且片段缓存可以接近同一端。但是,在添加到技术堆栈或进一步投资开发之前,我想确定这是否是一个可行的选择。