@import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
@import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
參照以下網(wǎng)址,在CentOS上安裝Nginx
http://m.tkk7.com/jacky9881/archive/2016/02/19/429375.html
1.首先新建以下兩個(gè)目錄,用于存放緩存文件;
[root@localhost nginx]# mkdir -p /data/nginx/proxy_temp_path
[root@localhost nginx]# mkdir -p /data/nginx/proxy_cache_path
2.編輯nginx.conf文件
在http模塊增加如下內(nèi)容,指定緩存文件的存放路徑:
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來指定緩存區(qū)的名字,在接下來的location模塊配置中需要用到;
20m是指定用于緩存的內(nèi)存大小(由于本人虛擬機(jī)內(nèi)存原因,設(shè)置了20M,生產(chǎn)環(huán)境中可以設(shè)置大一些,比如1G);
inactive=1d,代表緩存的數(shù)據(jù)如果超過一天沒有被訪問的話,則自動(dòng)清除;
max_size=3g是指定用于緩存的硬盤大小(由于本人虛擬機(jī)內(nèi)存原因,設(shè)置了3g,生產(chǎn)環(huán)境中可以設(shè)置大一些,比如50G);
levels=1:2 指定該緩存目錄中有兩層hash目錄,第一層目錄為1個(gè)字母,第二層為2個(gè)字母,其中第一層目錄名為緩存數(shù)據(jù)MD5編碼的倒數(shù)第一個(gè)
字母,第二層目錄名為緩存數(shù)據(jù)MD5編碼的倒數(shù)2,3兩個(gè)字母;
upstream local_tomcats {
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;
#定義http返回值為200和304,緩存時(shí)間12小時(shí),如果12小時(shí)后,沒有被訪問,則自動(dòng)被刪除;
#200表示 服務(wù)器已成功處理了請(qǐng)求,304表示 自從上次請(qǐng)求后,請(qǐng)求的網(wǎng)頁(yè)未修改過
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; #這個(gè)要設(shè)定,否則好像生成不了緩存文件
}
#用于清除緩存
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
可以看到,緩存文件已經(jīng)生成,注意緩存文件名最后三位和緩存文件夾的關(guān)系。
在瀏覽器地址欄輸入:http://www.hw.com/purge/tomcat.png
頁(yè)面顯示如下信息,提示緩存文件已經(jīng)被清除。
Successful purge
Key : www.hw.com/tomcat.png
Path: /data/nginx/proxy_cache_path/7/8a/b12ee1366ed4307aa6408a16286658a7
注意這里的Key,就是配置文件中定義 proxy_cache_key
查看緩存命中率
在location / 模塊,增加如下代碼
add_header Nginx-Cache "$upstream_cache_status";
同時(shí)在http模塊打開ngnix的日志功能,默認(rèn)是關(guān)閉狀態(tài)。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'"$upstream_cache_status"';
access_log logs/access.log main;
[root@localhost nginx]# ./sbin/nginx -s reload
在瀏覽器地址欄輸入:http://www.hw.com/tomcat.png
重復(fù)刷新幾次,打開日志文件 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"