Nginx反向代理缓存配置

前言

  反向代理使用Nginx,当客户端向Nginx服务器发送请求时,Nginx转发给集群,当请求到达Nginx时可以加一层缓存,可存储动态页面,当缓存存在时Nginx直接将缓存返回给客户端,而不请求服务器,这样可以将一大部分请求拦截到直接返回缓存,使服务器压力降低。

 

缓存配置

  无缓存配置

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include      mime.types;
    default_type  application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;

    server {
        listen      8080;
        server_name  localhost;
        }
              
        location / {
            proxy_pass  http://127.0.0.1:8878;
        }
 }
View Code

 

  proxy_pass指令:用来设置被代理服务器的地址,可以是主机名称,IP地址加端口号等形式

  现在加上缓存配置

worker_processes  1;

events {
    worker_connections  1024;
}


http {
     proxy_cache_path ../data levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g;
    include      mime.types;
    default_type  application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;

    
    
    server {
        listen      8080;
        server_name  localhost;
        }
              
        location / {
                 proxy_cache cache_one;
                 proxy_cache_valid 200 304 302 1h;
                 proxy_pass  http://127.0.0.1:8878;
                 proxy_cache_key  $uri$is_args$args;
        }
 }
View Code

 

  加了三行:

proxy_cache_path  ../data  levels=1:2  keys_zone=cache_one:500m  inactive=1d  max_size=30g;

  proxy_cache_path:表示缓存文件存放的路径,该路径是预先就要创建好的 levels=1:2 :   设置在相对于path指定目录的第几级hash目录中缓存数据,levels=1,表示一级hash目录,levels=1:2,表示两级hash目录

 

proxy_cache cache_one;

  表示这个server使用上面设置的那个cache

 

proxy_cache_valid 200 304 302 24h; 

  针对不同的HTTP响应状态设置不同的缓存时间,如果不设置,nginx服务器只为HTTP状态代码为200,301和302的响应数据做缓存 使用any可以表示缓存所有该指令中未设置的其他响应数据,如:

proxy_cache_valid 200 302 10m;

proxy_cache_valid 301 1h;

proxy_cache_valid any 1m;

  表示的是对返回状态为200,302的响应数据缓存10分钟,对返回状态码为301的响应数据缓存1小时,非200,302,301返回状态的响应数据缓存1分钟

 

 

 

 

 

 

 

 

posted @ 2020-05-13 17:58  贰拾~  阅读(2429)  评论(0编辑  收藏  举报