我使用nginx作为前端服务器,我已经修改了CSS文件,但nginx仍然服务于旧的。
我尝试重新启动nginx,没有成功,我已经谷歌了,但没有找到一个有效的方法来清除它。
一些文章说我们可以删除缓存目录:var/cache/nginx,但在我的服务器上没有这样的目录。
我现在该怎么办?
我使用nginx作为前端服务器,我已经修改了CSS文件,但nginx仍然服务于旧的。
我尝试重新启动nginx,没有成功,我已经谷歌了,但没有找到一个有效的方法来清除它。
一些文章说我们可以删除缓存目录:var/cache/nginx,但在我的服务器上没有这样的目录。
我现在该怎么办?
当前回答
请注意,如果你的应用程序没有为你触发的特定请求返回一个可缓存的响应,proxy_cache_bypass会给你带来很大的伤害。
例如,如果你的应用程序在每个第一个请求时都发送一个cookie,那么通过curl触发proxy_pass_bypass的脚本可能会在应答中获得这个cookie,而nginx不会使用该响应来刷新缓存的项。
其他回答
可以删除nginx缓存目录,也可以搜索指定文件:
grep -lr 'http://mydomain.pl/css/myedited.css' /var/nginx/cache/*
并且只删除一个文件nginx刷新它们。
我也有这个问题。
找不到nginx/cache文件夹 发送文件已关闭
我的域名使用cloudflare.com进行DNS(很棒的服务!)啊哈!就是这样:
cloudflare.com ->缓存->清除缓存(我清除了一切) 这解决了我的问题!
除非你通过proxy_cache_path配置了一个缓存区,然后使用它(例如在一个位置块中),通过: Proxy_cache不会缓存任何东西。
然而,如果你这样做了,那么根据nginx的作者,简单地从缓存目录中删除所有文件就足够了。
最简单的方法:find /path/to/your/cache -type f -delete
find /etc/nginx/cache_folder -type d -exec rm -rvf {} \;
mkdir /etc/nginx/cache_folder
service nginx restart
注意正确指定正确的路径。
你可以在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”的文件夹来存储缓存的内容。