@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
参照以下网址,在CentOS上安装Nginx
http://www.blogjava.net/jacky9881/archive/2016/02/19/429375.html
1.首先新建以下两个目录,用于存放缓存文件;
[root@localhost nginx]# mkdir -p /data/nginx/proxy_temp_path
[root@localhost nginx]# mkdir -p /data/nginx/proxy_cache_path
2.编辑nginx.conf文件
在http模块增加如下内容,指定缓存文件的存放路径:
proxy_temp_path /data/nginx/proxy_temp_path;
proxy_cache_path /data/nginx/proxy_cache_path levels=1:2 keys_zone=cache_one:20m inactive=1d max_size=3g ;
注:通过
keys_zone来指定缓存区的名字,在接下来的location模块配置中需要用到;
20m是指定用于缓存的内存大小(由于本人虚拟机内存原因,设置了20M,生产环境中可以设置大一些,比如1G);
inactive=1d,代表缓存的数据如果超过一天没有被访问的话,则自动清除;
max_size=3g是指定用于缓存的硬盘大小
(由于本人虚拟机内存原因,设置了3g,生产环境中可以设置大一些,比如50G);
levels=1:2
指定该缓存目录中有两层hash目录,第一层目录为1个字母,第二层为2个字母,其中第一层目录名为缓存数据MD5编码的倒数第一个
字母,第二层目录名为缓存数据MD5编码的倒数2,3两个字母;
upstream local_tomcats {
server 192.168.8.132:8080;
server 192.168.8.130:8080;
}
server 192.168.8.132:8080;
server 192.168.8.130:8080;
}
修改location模块
location ~ \.(jsp|do)$ {
proxy_pass http://local_tomcats;
}
location / {
proxy_cache cache_one;
}
location / {
proxy_cache cache_one;
#定义http返回值为200和304,缓存时间12小时,如果12小时后,没有被访问,则自动被删除;
#200表示
服务器已成功处理了请求,304表示
自从上次请求后,请求的网页未修改过
proxy_cache_valid 200 304 12h ;
proxy_cache_valid 301 302 1m ;
proxy_cache_valid any 10m ;
proxy_cache_key $host$uri$is_args$args;
proxy_ignore_headers X-Accel-Expires Expires Set-Cookie Cache-Control;
proxy_hide_header Cache-Control;
proxy_hide_header Set-Cookie;
proxy_pass http://local_tomcats; #这个要设定,否则好像生成不了缓存文件
}
#用于清除缓存
location ~ /purge(/.*) {
allow 127.0.0.1;
allow 192.168.8.132;
deny all ;
proxy_cache_purge cache_one $host$1$is_args$args ;
proxy_cache_valid 200 304 12h ;
proxy_cache_valid 301 302 1m ;
proxy_cache_valid any 10m ;
proxy_cache_key $host$uri$is_args$args;
proxy_ignore_headers X-Accel-Expires Expires Set-Cookie Cache-Control;
proxy_hide_header Cache-Control;
proxy_hide_header Set-Cookie;
proxy_pass http://local_tomcats; #这个要设定,否则好像生成不了缓存文件
}
#用于清除缓存
location ~ /purge(/.*) {
allow 127.0.0.1;
allow 192.168.8.132;
deny all ;
proxy_cache_purge cache_one $host$1$is_args$args ;
}
在浏览器地址栏输入:http://www.hw.com/tomcat.png
查看缓存目录
[root@localhost nginx]# ls /data/nginx/proxy_cache_path/7/8a
b12ee1366ed4307aa6408a16286658a7
可以看到,缓存文件已经生成,注意缓存文件名最后三位和缓存文件夹的关系。
在浏览器地址栏输入:http://www.hw.com/purge/tomcat.png
页面显示如下信息,提示缓存文件已经被清除。
Successful purge
Key : www.hw.com/tomcat.png
Path: /data/nginx/proxy_cache_path/
7/8a/b12ee1366ed4307aa6408a1628665
8a7
注意这里的Key,就是配置文件中定义
proxy_cache_key
查看缓存命中率
在
location / 模块,增加如下代码
add_header Nginx-Cache
"$upstream_cache_status"
;
同时在http模块打开ngnix的日志功能,默认是关闭状态。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'"
$upstream_cache_status
"';
access_log logs/access.log main;
access_log logs/access.log main;
[root@localhost nginx]# ./sbin/nginx -s reload
在浏览器地址栏输入:http://www.hw.com/tomcat.png
重复刷新几次,打开日志文件 logs/access.log,可以看到HIT的字样,意味着缓存命中。
192.168.8.132 - - [08/Mar/2016:20:48:38 +0800] "GET /tomcat.png HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0" "-""
HIT"
192.168.8.132 - - [08/Mar/2016:20:48:40 +0800] "GET /tomcat.png HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0" "-"" HIT"
192.168.8.132 - - [08/Mar/2016:20:48:42 +0800] "GET /tomcat.png HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0" "-"" HIT"
192.168.8.132 - - [08/Mar/2016:20:48:40 +0800] "GET /tomcat.png HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0" "-"" HIT"
192.168.8.132 - - [08/Mar/2016:20:48:42 +0800] "GET /tomcat.png HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0" "-"" HIT"