Nginx 缓存服务  

nginx缓存服务器的配置主要是通过proxy_cache相关命令来实现的

    也可以设置不同的location来应对,不过Nginx也有相关的参数:proxy_no_cache; 详细使用参数参考以下案例:

  

    配置位置:

http{
    ......
/data/ngx_cache  levels=1:2keys_zone=whsir_com:10mmax_size=10ginactive=60muse_temp_path=off;
.....
{
8080;
_name
/home/;
        if ($request_uri ~ ^/(login|register|password|search)){
          set $cookie_user 1              #符合要求的页面 设置为1
        }
        if($request_uri ~^/(login|search)){


set1;

        }
        
location/{

whsir_com;    #代表开启这个缓存
_valid20030230460m;  
_key  $host $request_uri $cookie_user         
Host$host;
_headerX-Forwarded-For$remote_addr;
http://127.0.0.1:8080;
          proxy_no_cache: $cookie_user  $arg_nocache $arg_comment       #当变量 $cookie_user为1 的时候不缓存
3d;
    }

 

    参数配置解释:

      http内部配置参数

proxy_cache_path:定义缓存存储位置

levels=1:2:设置缓存目录深度,最多能创建3层。

keys_zone=my_cache:10m:定义缓存区域名称和内存缓存空间大小。名字为my_cache  缓存空间为10M   此名字用户后面开启代理缓存  proxy_cache使用 代表开启缓存

              在共享内存中设置一块存储区域来存放缓存的key和metadata(类似使用次数),这样nginx可以快速判断一个request是否命中或者未命中缓存,

              1m可以存储8000个key,10m可以存储80000个key

max_size=10g:磁盘缓存空间最大使用值,达到配额后删除最少使用的缓存文件。

inactive=60m:设置缓存时间,60分钟内没有被访问过就删除。inactive默认是10分钟。

expired只是缓存过期,但不会被删除,inactive是删除指定时间内未被访问的缓存文件

use_temp_path=off:不使用temp_path指定的临时存储路径,直接将缓存文件写入指定的cache文件中,建议为off,避免文件在不同文件系统中不必要的拷贝

        如果使用 

          注意:缓存目录/proxy_cache/proxy_temp一定要在同一个分区下,并且权限一定要和nginx程序权限一致(即要有写入权限,否则不能生产缓存文件)!

 

       server内部配置参数:

        

proxy_cache my_cache:缓存区域名称,要和keys_zone定义的名称一致;如果proxy_cache off表示关闭掉缓存

proxy_cache_valid20030230460m:设置状态码为200302304过期时间为60分钟

proxy_cache_key:设置缓存的key,这里是以域名、URI、用户cookie,根据key值哈希存储缓存内容到二级缓存目录内

expires3d:缓存时间3天

proxy_no_cache: $cookie_user 当$cookie_user为1 的时候不缓存

        

      

    参数配置完成后进行测试配置文件

     

nginx -t -c /etc/nginx/nginx.conf

    测试完成成功时;进行加载配置

     

nginx -s reload -c /etc/nginx/nginx.conf