nginx缓存清理
⽅法⼆:
找到nginx的缓存⽬录如果缓存不多的话可以选择直接删除缓存⽬录⾥⾯的东西,如果缓存特别⼤的情况则需要找到对应缓存的⽂件进⾏删除。
⽅法三:
若配置了缓存清除功能(可清除指定⽂件缓存)
nginx具有web缓存服务,proxy_cache,但是有⼀个问题就是,proxy_cache不能清除指定的URL缓存,只能设置URL过期时间,但是有问题,有⼈就会很快解决问题,nginx第三⽅模块ngx_cache_purge能清除指定URL。
nginx安装时需要将ngx_cache_purege加载进去。
./configure --ur=www --group=www --add-module=/root/dxm/nginx/ngx_cache_purge-1.2
其中,/root/dxm/nginx/ngx_cache_purge-1.2为ngx_cache_purge解压路径(附件中提供ngx_cache_purge tar包下载)
现在来⼀段实例,实现图⽚缓存:
话说proxy_tem_path,与proxy_cache_path必须在同⼀个分区之下!
proxy_temp_path /usr/local/nginx/proxy_temp;
健康小报的手抄报proxy_cache_path /usr/local/nginx/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=1g;
upstream tomcat_rver{
珍妮英文
rver 127.0.0.1:8080;
}
rver{
listen 192.168.154.128;
rver_name ;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{从前慢歌词
proxy_cache cache_one;
proxy_cache_methods GET HEAD POST;
proxy_cache_min_us 1;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
proxy_cache_valid any 1m;
proxy_cache_key "$host:$rver_port$uri$is_args$args";
proxy_redirect off;
proxy_t_header Host $host;
糖尿病人食谱
proxy_t_header X-Real-IP $remote_addr;
proxy_t_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass tomcat_rver;
}
location ~ .*\.(jsp)$ {
proxy_redirect off;
proxy_t_header Host $host;
糖果屋的故事
proxy_t_header X-Real-IP $remote_addr;
proxy_t_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass tomcat_rver;
}
location ~ /purge(/.*)
{
allow 192.168.154.128;
allow 192.168.154.1;
deny all;
proxy_cache_purge cache_one $host:$rver_port$1$is_args$args;
}
恩,静态页⾯缓存,动态请求不缓存!
⼤家看⼀下最后⼀段的那个purege配置,很显然,表⽰哪些IP可以⼿动清除指定的URL
⽐如,www.wolfdraem/1.jpg可以访问到我的图⽚,那么⽤www.wolfdream/purge/1.jpg 就可以清除图⽚缓存了。
删除nginx缓存⽂件名著好词好句
⼀:脚本途穷
a shell版
#!/bin/bash
#Date: 2013-06-27
#Auther: budong
>>>>>>>>>>>#说明:
# 1.本脚本⽤于清除nginx缓存⽂件
# 2.查看你的nginx是根据什么作为key来hash的,我的设置是 proxy_cache_key $uri$is_args$args;
# 因此nginx会根据$uri$is_args$args作为key进⾏hash,因此可以模拟nginx对⼀个key进⾏再
# hash找到相应的⽂件路径,删除(具体可随意找个缓存⽂件 more ⼀下看看)
# 3.缓存设置 proxy_cache_path /data/mumayi/cache levels=1:2 keys_zone=cache_one:6000m inactive=15d max_size=200g;
# 根据相应的配置,请做相应修改测试
# 4.uri格式请按照同级⽬录下rm_中填写
>>>>>>>>>>###while read-r line
do
md5uri=`echo-n $line | md5sum | awk'{ print $1 }'`
filepath=`echo"$md5uri"| awk'{print "/data/mumayi/cache/"substr($0,length($0),1)"/"substr($0,length($0)-2,2)"/"$0}'`
rm-rf $filepath
done< /root/sbin/rm_
b python版
#!/usr/local/python2.7/bin/python2.7
# -*- coding:utf8 -*-
#Date: 2013-06-26
#Name: budong
'''
说明:
1.本脚本⽤于清除nginx缓存⽂件
2.查看你的nginx是根据什么作为key来hash的,我的设置是 proxy_cache_key $uri$is_args$args;
因此nginx会根据$uri$is_args$args作为key进⾏hash,因此可以模拟nginx对⼀个key进⾏再
hash找到相应的⽂件路径,删除(具体可随意找个缓存⽂件 more⼀下看看)
3.缓存设置 proxy_cache_path /data/mumayi/cache levels=1:2 keys_zone=cache_one:6000m inactive=15d max_size=200g;
根据相应的配置,请做相应修改测试
4.uri格式请按照同级⽬录下rm_中填写
'''
import os
import sys
try:
北方美食from hashlib import md5
except:
from md5 import md5
reload( sys )
sys.tdefaultencoding('utf-8')
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
URI_FILE = ''.join([PROJECT_ROOT,'/rm_'])
def nginx_purge(uri):
m = md5()
m.update("%s"% uri)
md5uri=m.hexdigest()
md5uri_len=len(md5uri)
dir1=md5uri[md5uri_len-1:]
dir2=md5uri[md5uri_len-3:md5uri_len-1]
file_path=("/data/mumayi/cache/%s/%s/%s"% (dir1, dir2, md5uri)) if ists(file_path):
with open("%s"% URI_FILE,'r') as uri_file:
for line in uri_file:
line = line.rstrip()
nginx_purge(line)