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 的缓存机制只应用于静态文件,从而提高网页性能。
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章