为 nginx 中的每个元素设置缓存/过期时间?

为 nginx 中的每个元素设置缓存/过期时间?

在配置 Web 服务器(nginx)时,设置和过期时间和缓存是否不常见每一个客户端浏览器请求的每个目录中都有这个元素吗?

我刚刚在 nginx 网站和 servervault 上找到一些过期时间的示例:

location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
    expires 30d;
    add_header Pragma public;
    add_header Cache-Control "public";
}


location ~* \.(?:css|gif|jpe?g|png)$ {
    expires max;
}

location如果我想尝试为每个元素设置一个过期时间,我该如何写这一行?

location ~* \.(?:*)$ {
    expires 2d;
    add_header Pragma public;
    add_header Cache-Control "public"
}

答案1

当你想匹配所有内容时,你可以使用:

location / {
    expires 2d;
    add_header Pragma public;
    add_header Cache-Control "public"
}

但是,如果您有任何类型的动态内容,如用户登录、随时间更新的页面等,最好在应用程序内部设置缓存标头,然后让 nginx 根据缓存标头缓存数据。不过,这是一个太大的主题,无法在 ServerFault 中详细讨论。

相关内容