Nginx 缓存 jpg 文件失败

Nginx 缓存 jpg 文件失败

我使用的是最低版本的 Ubuntu 服务器 16.04,上面有 Nginx 1.10.3(我两天前从 Apache 迁移到这个版本)。在这个环境中,我运行了一个最低版本的 Wordpress 网站(5 个插件,没有自定义)。

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 365d;
}

location ~* \.(pdf)$ {
    expires 30d;
}

我将该代码粘贴到 Nginx 文件中的服务器块中default.conf(以便在需要时将其与其他网站一起使用),然后重新启动:

systemctl restart nginx.service

然而,当运行 GPI 测试时,我仍然会得到许多 jpg 文件的“利用浏览器缓存”,即使“jpg”已经包含在指令中。

到目前为止,我找到的所有文档都与我已经尝试过的方法完全一致。有什么想法吗?也许大多数文档都过时了?也许这是 Nginx 当前版本中的一个错误?

答案1

我必须将缓存过期指令放在server块中而不是http块中。

我把代码放在 site-conf 服务器块的末尾,重新启动 Nginx 和 GPI 测试,没有 logner 显示通知。

    location ~*  \.(jpg|jpeg|png|gif|ico|css|js|ttf|woff)$ {
        expires 365d;
    }

    location ~*  \.(pdf)$ {
        expires 30d;
    }

} # domain.tld.conf server block closure.

相关内容