由于網(wǎng)站訪問量比較大,導致后端服務器壓力山大拱她,所以就利用Nginx的緩存功能,把后端請求全部緩存下來扔罪,類似于生成靜態(tài)頁面椭懊,但比靜態(tài)頁面好維護。
其中步势,還要借助ngx_cache_purge模塊氧猬,ngx_cache_purge是由labs.frickle.com開發(fā)的一個Nginx第三方模塊,通過該模塊使得Nginx可以清除指定URL的緩存頁面坏瘩。
配置如下:
1盅抚、下載Nginx、ngx_cache_purge
http://nginx.org/download/nginx-1.6.2.tar.gz
http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
2倔矾、安裝Nginx及ngx_cache_purge模塊
yum -yinstallgccgcc+gcc-c++ openssl openssl-devel pcre pcre-devel
./configure--user=www --group=www --prefix=/usr/local/nginx--with-http_stub_status_module --with-http_ssl_module --add-module=../ngx_cache_purge-2.3
make
makeinstall
3妄均、配置Nginx緩存
http {
proxy_cache_path/data/nginx/proxy_cachelevels=1:2 keys_zone=cache_one:100m inactive=7d max_size=500g;
server {
listen?????? 80;
server_name? localhost;
location / {
proxy_pass???????? http://127.0.0.1:8000;
proxy_cache??????? cache_one;
proxy_cache_valid 200 304 7d;
proxy_cache_key??? $host$uri$is_args$args;
expires 7d;
}
location ~/purge(/.*) {
allow????????????? 127.0.0.1;
deny?????????????? all;
proxy_cache_purge? cache_one $host$1$is_args$args;#其他配置可參考:http://wiki.nginx.org/CachePurgeChs
}
}
}
含義:
/data/nginx/proxy_cache 緩存目錄
levels=1:2 指該緩存空間有兩層hash目錄,第一層目錄是1個字符哪自,第二層為2個字符丰包,如:/data/nginx/proxy_cache/2/4a
keys_zone=cache_one:100m 緩存區(qū)名稱為cache_one,內(nèi)存緩存空間大小為100M
inactive=7d 緩存時間為7天壤巷,m代表分鐘邑彪,h代表小時,d表示天
max_size=500g 硬盤緩存空間大小為500G
proxy_cache_valid 200 304 7d 使用反向代理時胧华,緩存200寄症、304的請求
proxy_cache_key $host$uri$is_args$args 緩存的key
expires 瀏覽器里宙彪,頁面過期的時長,表示response中max-age的值
緩存過期的優(yōu)先級進行排序為:inactvie有巧、服務器Expires释漆、服務器max-age、proxy_cache_valid
4篮迎、修改完Nginx配置文件后男图,記得檢查一下配置文件是否正確,正確才重啟Nginx
/usr/local/nginx/sbin/nginx-t -c/usr/local/nginx/conf/nginx.conf
訪問下面地址時甜橱,nginx就會把這個請求緩存起來享言,下次再訪問時,則不會再訪問后端的tomcat或php服務渗鬼。
http://127.0.0.1/xxx.shtml
如果需要清除緩存览露,則只需執(zhí)行下面的地址則可。
http://127.0.0.1/purge/xxx.shtml