• 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分钟

  • 相关阅读:
    Docker Swarm
    服务器虚拟化
    kubernets的工作流程
    配置docker阿里云加速器
    kubeadm 安装kubernetes集群。
    linux的10个最危险的命令
    18个网络带宽常用命令
    column命令
    dd命令
    scp命令
  • 原文地址:https://www.cnblogs.com/zousc/p/12883961.html
Copyright © 2020-2023  润新知