这里给出示例,并详解。 http { [...] [...] proxy_cache_path /data/Nginx/cache/one levels=1:2 keys_zone=one:10m max_size=10g; proxy_cache_key "$host$request_uri"; server { server_name www.CentOS.bz centos.bz; root /home/www.centos.bz/web; index index.PHP index.html index.htm; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host "www.centos.bz"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #开启反向代理缓存,并使用zone name为one的缓存。 proxy_cache one; #设置状态码为200 302过期时间为10分钟 proxy_cache_valid 200 302 10m; #设置状态码404的过期时间为1分钟 proxy_cache_valid 404 1m; } #清除缓存 location ~ /purge(/.*) { #允许的ip allow 127.0.0.1; deny all; proxy_cache_purge one $host$1$is_args$args; } } } 反向代理的缓存主要涉及以下几个命令: proxy_cache_path proxy_cache_key proxy_cache proxy_cache_valid。 proxy_cache_path 这个是设置缓存的目录,语法如下: proxy_cache_path path [ levels = levels ] keys_zone = name : size [ inactive = time ] [ max_size = size ] [ loader_files = number ] [ loader_sleep = time ] [ loader_threshold = time ] 可放置的上下文:
http [ levels = levels ]: 设置缓存目录层数,如levels=1:2,表示创建两层目录缓存,最多创建三层。第一层目录名取proxy_cache_key md5的最后一个字符,第二层目录名取倒数2-3字符,如: proxy_cache_key md5为b7f54b2df7773722d382f4809d65029c,则:
levels=1:2为/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
keys_zone = name : size:
proxy_cache_key proxy_cache_key与下面的清缓存功能(purge cache)有很大关系。可放置在上下文,http server location
proxy_cache
proxy_cache_valid 另外,清缓存需要安装插件ngx_cache_purge,安装方法如下: cd /tmp wget http://labs.frickle.com/files/ngx_cache_purge-2.1.tar.gz tar xzf ngx_cache_purge-2.1.tar.gz cd /tmp wget http://nginx.org/download/nginx-1.4.2.tar.gz tar xzf nginx-1.4.2.tar.gz cd nginx-1.4.2 ./configure --prefix=/usr/local/nginx --add-module=/tmp/ngx_cache_purge-2.1 make && make install (责任编辑:IT) |