我使用nginx作为前端服务器,我已经修改了CSS文件,但nginx仍然服务于旧的。
我尝试重新启动nginx,没有成功,我已经谷歌了,但没有找到一个有效的方法来清除它。
一些文章说我们可以删除缓存目录:var/cache/nginx,但在我的服务器上没有这样的目录。
我现在该怎么办?
我使用nginx作为前端服务器,我已经修改了CSS文件,但nginx仍然服务于旧的。
我尝试重新启动nginx,没有成功,我已经谷歌了,但没有找到一个有效的方法来清除它。
一些文章说我们可以删除缓存目录:var/cache/nginx,但在我的服务器上没有这样的目录。
我现在该怎么办?
当前回答
在我的nginx安装中,我发现我必须去:
sudo rm -rf /opt/nginx/cache
在那个目录里。如果你知道nginx的安装路径,并且可以找到缓存目录,同样的方法也适用于你。小心使用rm -rf命令,如果你在错误的目录,你可能会删除你的整个硬盘驱动器。
其他回答
find /etc/nginx/cache_folder -type d -exec rm -rvf {} \;
mkdir /etc/nginx/cache_folder
service nginx restart
注意正确指定正确的路径。
已经有很多答案了,但我认为我有一个有用的补充;
我正在用Hyper-V运行一个Homestead盒子,我有一个laravel项目,并在nginx上运行。
我在/etc/的nginx文件夹中没有缓存
当我访问我的网站时,我得到了服务器旧视图和css文件。
什么解决了它为我搜索浪费了很多时间看我的nginx配置和尝试的东西是使用PHP工匠。
在artisan安装的文件夹[laravel项目的根目录]中执行如下命令: PHP工匠优化:清除
这个命令清除所有的缓存,当我刷新我的网页,最终它更新了所有的变化。
希望这能帮助像我这样受困的灵魂:)
编辑:如果我有50个名声,我会把这条评论贴在一个已经存在的答案上。[到目前为止我只有43个]
对于那些尝试删除nginx缓存文件的人,如果它没有工作或工作断断续续,请查看您的open_file_cache设置。如果启用并配置为长时间缓存文件描述符,那么Nginx仍然可以看到缓存文件的一个版本,即使你已经从磁盘上删除了它。我不得不将open_file_cache_valid减少到1s(我不确定这在本质上是否与完全禁用文件缓存相同)。
我们使用nginx缓存很多东西。缓存目录中有成千上万的项。为了查找并删除项目,我们开发了一些脚本来简化这个过程。你可以在下面找到包含这些脚本的代码库的链接:
https://github.com/zafergurel/nginx-cache-cleaner
这个想法很简单。创建缓存的索引(包含缓存键和相应的缓存文件),并在该索引文件中进行搜索。它确实帮助我们加快了查找项目的速度(从几分钟到亚秒),并相应地删除它们。
请注意,如果你的应用程序没有为你触发的特定请求返回一个可缓存的响应,proxy_cache_bypass会给你带来很大的伤害。
例如,如果你的应用程序在每个第一个请求时都发送一个cookie,那么通过curl触发proxy_pass_bypass的脚本可能会在应答中获得这个cookie,而nginx不会使用该响应来刷新缓存的项。