Nginx作为缓存服务


缓存类型

客户端缓存,代理缓存(Nginx),服务端缓存(Redis).

nginx作为代理缓存

proxy_ cache配置语法:
Syntax: proxy_ cache_ path path [levels=levels] 定义目录的空间大小以及名字 用来防止缓存文件的
………………..
Default:——
Context :http


Syntax : proxy_ cache zone|off;
Default: proxy_cache off;
Context:http,server,location;


配置语法-缓存过期周期
Syntax:proxy_ cache_ valid[code…] time; code代表状态码 200
Default : ——
Context : http,server,location


配置语法-缓存的维度

Synatx:proxy_ cache_ key string;

Default : proxy_ cache_ key $scheme $proxy_ host $request_ uri; 缓存的key

Context :http , server,location


配置

vim /etc/nginx/cond.f/test.conf

 upstream imooc {    //负载均衡服务器  
    server 192.168.1.111;  
    server 192.168.1.222;  
    server 192.168.1.333;  
 }

proxy_cache_path /opt/app/cache levels=1:2 keys_zone=cache:10m max_size=10g inactive=60m use_temp_path=off;  



proxy_cache_path  /opt/app/cache    缓存文件的存放位置

levels=1:2                          两层目录的分级

keys_zone=fan_cache:10m             开辟的空间大小

max_size=10g                        最大空间

inactive=60m                        不活跃的缓存文件。60分钟之后清理掉

use_temp_path=off                   临时访问空间关掉 



server {
listen       80;
server_name  localhost;

#charset koi8-r;
access_log  /var/log/nginx/test_proxy.access.log  main;

location / {
    proxy_cache cache;
    proxy_pass http://imooc;   //基于代理
    proxy_cache_valid 200 304 12h;
    proxy_cache_valid any 10m;
    proxy_cache_key $host$uri$is_args$args;
    add_header  Nginx-Cache "$upstream_cache_status";  

    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    include proxy_params; 


 proxy_cache cache;                               上面定义的zone

 proxy_pass http://imooc;                          定义的upstream

 proxy_cache_valid 200 304 12h;                    为200和304的过期时间为12小时

 proxy_cache_valid any 10m;                        其他为10分钟

 proxy_cache_key $host$uri$is_args$args;           缓存的key 

 add_header Nginx-Cache "$upstream_cache_status";     给客户端增加名为一个Nginx-Cache 的头信息

 proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;       
 如果服务器出现了定义的错误,跳过本节点访问下一台。


 }