nginx配置web缓存相关

web缓存服务器位于server和client之间,当访问某url时,web缓存去请求server,下一个请求到达,若请求的是同一个url,web缓存服务器会直接返回内容给客户端,不再向server请求,降低了内容源server以及数据库的负载,减少网络延迟,提高了用户的访问响应速度,增强了用户体验

web缓存服务器最出名的是squid cache,现在新版的nginx指令proxy_cache支持了web缓存服务,新浪为nginx开发的ncache模块也可以支持web服务,解决了squid不能充分利用多核cpu的限制

nginx从0.7.48版本开始支持类似squid的缓存服务,它是把url及相关组合当做key,用md5算法对key进行hash,得到硬盘上对应的hash目录路径,从而将缓存内容保存在该目录内

proxy_chache相关指令集:

1 proxy_cache指令

语法 proxy_cache zone_name 默认none 使用环境server http location

作用:设置哪个缓存区将被使用


2 proxy_cache_path指令

语法 proxy_cache_path path [levels=num] keys_zone=zone_name:zone_size [inactive=time] [max_size=size] 默认none 使用环境 http 

作用:用于设置缓存文件的存放路径

eg:proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=chache_one:500m inactive=1d max_size=30g;

注:该指令只能用于http标签 levels指定该缓存有两层hash目录,第一层为1个字母,第二层为2个,保存的文件类似 /data0/proxy_cache_dir/c/29/sdsdsdvdhqwkeqejrewwereerewrrrrrrrrr 

key_zone参数用来为这个缓存起名  500m指内存缓存空间大小为500MB

inactive的1d指的是如果缓存在1天内没有被访问就删除

max_size的30g指的是硬盘缓存空间为30G


3 proxy_cache_methods 

语法 proxy_cache_methods [get post head]

默认值:proxy_cache_methods GET HAED;

使用环境:http server location

作用:用于设置缓存哪些http方法,默认缓存http get|head方法,不缓存post方法


4 proxy_cache_min_uses

语法:proxy_cache_min_uses the_number

默认值:proxy_cache_min_uses 1

使用环境:http server location

作用:用于设置缓存的最小使用次数


5 proxy_cache_valid

语法:proxy_cache_valid code [code ....] time

默认值:none

使用环境:http server location

作用:用于对不同返回码的url设置不同的缓存时间

proxy_cache_valid 200 302 10m;

proxy_cache_valid 404 1m;

表示设置200 302返回码缓存时间为10min 404缓存1min


6 proxy_cache_key

语法:proxy_cache_key line

默认值:none

使用环境:http server location

作用:设置web缓存的key值,nginx会根据key进行md5哈希存储缓存,一般根据$host(域名) $request_uri(请求路径) 等变量组合成proxy_cache_key

proxy_cache_key "$post:$server_port$uri$is_args$args"


fastcgi_cache相关的指令集

用法和含义分别对应proxy相关的指令

1 fastcgi_cache

2 fastcgi_cache_path 

3 fastcgi_cache_methods

4 fastcgi_cache_min_uses

5 fastcgi_cache_valid

6 fastcgi_cache_key


你可能感兴趣的:(nginx)