nginx

Nginx缓存配置

2016-09-12  本文已影响159人  Mark87

由于网站访问量比较大,导致后端服务器压力山大,所以就利用Nginx的缓存功能,把后端请求全部缓存下来,类似于生成静态页面,但比静态页面好维护。

其中,还要借助ngx_cache_purge模块,ngx_cache_purge是由labs.frickle.com开发的一个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 缓存区名称为cache_one,内存缓存空间大小为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的值

缓存过期的优先级进行排序为: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

如果需要清除缓存,则只需执行下面的地址则可。

http://127.0.0.1/purge/xxx.shtml

上一篇下一篇

猜你喜欢

热点阅读