在 Nginx 中为某些 IP 禁用 Cache-Control

Disabling Cache-Control in Nginx for certain IPs

我服务器上的静态文件通过 Cache-Control headers:

与浏览器缓存一起提供
location ~* \.(css|js|gif|jpe?g|png)$ {
        expires 1h;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}

是否可以为某些 IP 禁用此 header 以便它们不会缓存任何文件?

P.S。我需要它让以管理员身份登录的用户看到最后的更改。

expires指令可以由变量控制,通常由map指令生成。有关详细信息,请参阅 this document

例如:

map $remote_addr $expires {
    default     1h;
    10.1.2.3    -1;
}
server {
    ...
    location ~* \.(css|js|gif|jpe?g|png)$ {
        expires    $expires;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }
}

假定 add_header 语句可以保留,即使 expires 设置为 -1 以禁用缓存。