我可以在 nginx 重写规则中缓存页面吗?

我可以在 nginx 重写规则中缓存页面吗?

nginx 配置:

location / {
            rewrite ^/cache.html$ /cache.jsp last;
}
location ~ \.jsp {
            proxy_pass   http://127.0.0.1:85;
            #if I add proxy_cache here,will be cache every JSP file,I don't want it
}
#location ~ \.html {
            #I want cache all ".html" page,but it's not work.
            #proxy_cache cache;
            #....
#}

我使用重写规则将 /cache.html 映射到 /cache.jsp

我想要访问 http//localhost/cache.html 来缓存页面,

但访问 http//localhost/cache.jsp 时没有缓存,

怎么办?谢谢帮助:)

答案1

这不可能只是使用重写规则。

使其工作的唯一方法是通过代理返回页面并启用代理缓存。

您可以编写自定义位置以使其仅缓存特定的页面扩展,并且可以使用 if 语句来设置一次性缓存键,以使其看起来像页面未缓存,即使它实际上是为 1 个视图缓存的。

如果您正在考虑进入真正的基于规则的缓存领域,我建议您使用 Varnish。

相关内容