我使用nginx作为前端服务器,我已经修改了CSS文件,但nginx仍然服务于旧的。
我尝试重新启动nginx,没有成功,我已经谷歌了,但没有找到一个有效的方法来清除它。
一些文章说我们可以删除缓存目录:var/cache/nginx,但在我的服务器上没有这样的目录。
我现在该怎么办?
我使用nginx作为前端服务器,我已经修改了CSS文件,但nginx仍然服务于旧的。
我尝试重新启动nginx,没有成功,我已经谷歌了,但没有找到一个有效的方法来清除它。
一些文章说我们可以删除缓存目录:var/cache/nginx,但在我的服务器上没有这样的目录。
我现在该怎么办?
当前回答
在我的nginx安装中,我发现我必须去:
sudo rm -rf /opt/nginx/cache
在那个目录里。如果你知道nginx的安装路径,并且可以找到缓存目录,同样的方法也适用于你。小心使用rm -rf命令,如果你在错误的目录,你可能会删除你的整个硬盘驱动器。
其他回答
你可以在nginx.conf中添加如下配置。
...
http {
proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=my-test-cache:8m max_size=5000m inactive=300m;
server {
proxy_set_header X- Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_cache my-test-cache;
proxy_cache_valid 200 302 1m;
proxy_cache_valid 404 60m;
proxy_cache_use_stale error timeout invalid_header updating;
proxy_redirect off;
....
}
...
}
在上面,在/tmp/中动态创建了一个名为“nginx_cache”的文件夹来存储缓存的内容。
find /etc/nginx/cache_folder -type d -exec rm -rvf {} \;
mkdir /etc/nginx/cache_folder
service nginx restart
注意正确指定正确的路径。
我们使用nginx缓存很多东西。缓存目录中有成千上万的项。为了查找并删除项目,我们开发了一些脚本来简化这个过程。你可以在下面找到包含这些脚本的代码库的链接:
https://github.com/zafergurel/nginx-cache-cleaner
这个想法很简单。创建缓存的索引(包含缓存键和相应的缓存文件),并在该索引文件中进行搜索。它确实帮助我们加快了查找项目的速度(从几分钟到亚秒),并相应地删除它们。
在我的例子中,它是在/etc/php/7.2/fpm/php.ini (Ubuntu)中启用的opcache:
opcache.enable=1
将其设置为0使服务器加载(php)文件的最新版本。
可以删除nginx缓存目录,也可以搜索指定文件:
grep -lr 'http://mydomain.pl/css/myedited.css' /var/nginx/cache/*
并且只删除一个文件nginx刷新它们。