插件窝 干货文章 nginx php不缓存文件如何做

nginx php不缓存文件如何做

缓存 Cache 禁用 Nginx 780    来源:    2025-04-22

Nginx 配置 PHP 文件不缓存的方法

要让 Nginx 不对 PHP 文件进行缓存,可以通过以下几种方式实现:

方法一:在 Nginx 配置中设置响应头

location ~ \.php$ {
    # 其他 PHP 相关配置...

    # 禁用缓存
    add_header Cache-Control "no-cache, no-store, must-revalidate";
    add_header Pragma "no-cache";
    add_header Expires 0;
}

方法二:在 PHP 文件中设置响应头

在 PHP 文件中直接设置 HTTP 头:

<?php
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");
// 其他 PHP 代码...
?>

方法三:针对特定文件类型禁用缓存

location ~* \.(php|html)$ {
    expires -1;
    add_header Cache-Control "no-store, no-cache, must-revalidate, max-age=0";
    add_header Pragma "no-cache";
}

方法四:使用 fastcgi_no_cache 指令

location ~ \.php$ {
    fastcgi_no_cache 1;
    fastcgi_cache_bypass 1;
    # 其他 FastCGI 配置...
}

注意事项

  1. 修改 Nginx 配置后需要重新加载配置:

    sudo nginx -s reload
    
  2. 这些设置会完全禁用浏览器和代理服务器的缓存,可能会增加服务器负载。

  3. 对于开发环境,禁用缓存很有用;但对于生产环境,建议对静态资源保持适当缓存,只对动态内容禁用缓存。

  4. 如果使用 FastCGI 缓存,还需要禁用相应的缓存机制。

您可以根据实际需求选择最适合的方法来配置 Nginx 不缓存 PHP 文件。