nginx php 不缓存文件怎么做
时间 : 2023-02-15 09:33:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

Nginx+PHP是服务静态和动态网页的普及技术,为了提高服务网页的质量,通常都会对文件进行缓存以保证性能,但有时出于安全性问题或者其他要求我们需要实现不缓存某些文件,比如动态PHP文件、aspx等文件,本文来就来讨论不缓存文件怎么做。

1、修改.htaccess文件

在.htaccess文件中可以添加控制浏览器的缓存策略,从而可以控制不缓存某些文件,在文件中添加以下代码:

<IfModule mod_headers.c>

<FilesMatch ".(php|htm|html|txt)$">

Header set Cache-Control "no-cache, must-revalidate"

</FilesMatch>

</IfModule>

第二行可以根据需要自定义需要不缓存的文件类型,比如要不缓存PHP文件,则可以改为"(php)$"。

2、修改nginx.conf文件

在nginx.conf文件中也可以加入参数控制,具体操作如下:

location ~* \.(php|html|htm)$ {

proxy_no_cache 1;

proxy_cache_bypass 1;

proxy_cache_valid 0;

}

该段代码的作用是,检索所有的php、htm、html文件都不可以被nginx缓存,若要让nginx不缓存指定文件,可以根据上述模板来做。

3、修改php.ini文件

修改php.ini文件,在文件末尾加上以下代码:

header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );

header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" );

header( "Cache-Control: no-store, no-cache, must-revalidate" );

header( "Cache-Control: post-check=0, pre-check=0", false );

header( "Pragma: no-cache" );

该代码可以使PHP文件不被缓存。

总结:

在nginx和PHP出现缓存问题时,可以通过修改.htaccess、nginx.conf和php.ini三个文件解决这个问题,从而实现不缓存

众所周知,Nginx 是世界上最常用的 Web 服务器。它拥有对于请求的高性能、可靠性和功能完善,可以用于在大型站点、访问量庞大的站点负载,或者静态资源优化。PhotoShop 素材,视频,字体库等大文件常常使用 Nginx 的缓存来加速网页性能。

然而,Nginx 也有一个问题:同时缓存 PHP 动态文件也会影响网站的性能,可能会导致静态资源比动态资源更慢。

要想解决这个问题,可以在 Nginx 设置中禁用动态文件的缓存:

第一步,找到 Nginx 内置的配置文件,通常在 /etc/nginx/default.conf 中。

第二步,在配置文件中找到你要禁止缓存的文件,或者在文件夹中添加正则匹配文件后缀,例如:^(.*)\. (php | phtml) $

第三步,在文件夹中添加以下代码,开启缓存:

location ~ php$ {

expires off;

add_header Cache-Control no-store;

add_header Pragma no-cache;

}

第四步,保存配置文件并重新加载 Nginx:

sudo service nginx reload

经过这些步骤,Nginx 将不会再去缓存以 .php .phtml 结尾的文件。这样做的优点是可以保证 Nginx 的缓存机制只应用于静态文件,从而提高网页性能。