@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);
參照以下網址,在CentOS上安裝Nginx
http://m.tkk7.com/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;
}
修改location模塊
location ~ \.(jsp|do)$ {
proxy_pass http://local_tomcats;
}
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 ;
}
在瀏覽器地址欄輸入: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/b12ee1366ed4307aa6408a16286658a7
注意這里的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"'
'"$upstream_cache_status"';
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"