zoukankan      html  css  js  c++  java
  • Nginx详解十六:Nginx场景实践篇之缓存服务

    缓存类型:

    服务端缓存

    代理缓存

    客户端缓存

    Nginx代理缓存

    配置语法

    使用之前需要先定义一个proxy_cache_path
    配置语法:proxy_cache_path path [levels=levels]
    [use_temp_path=on|off] keys_zone=name:size [inactive=time]
    [max_size=size] [manager_files=number] [manager_sleep=time]
    [manager_threshold=time] [loader_files=number]
    [loader_sleep=time] [loader_threshold=time] [purger=on|off]
    [purger_files=number] [purger_sleep=time]
    [purger_threshold=time];
    默认状态:-;
    配置方法:http

    proxy_cache
    配置语法:proxy_cache zone | off;
    默认状态:proxy_cache off;
    配置方法:http、server、location

    缓存过期周期
    配置语法:proxy_cache_valid [code...] time;
    默认状态:-
    配置方法:http、server、location

    缓存的维度
    配置语法:proxy_cache_key string;
    默认状态:proxy_cache_key $scheme$proxy_host$request_url;
    配置方法:http、server、location

    确保后端正常:netstat -luntp|grep 800

     

    去到Nginx缓存服务器

    upstream imooc {
    server 116.62.103.228:8001;
    server 116.62.103.228:8002;
    server 116.62.103.228:8003;
    }
    proxy_cache_path /opt/app/cache levels=1:2 keys_zone=imooc_cache:10m max_size=10g inactive=60m use_temp_path=off;
    server {
    listen 80;
    server_name localhost jeson.t.imooc.io;

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

    location / {
    proxy_cache imooc_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;
    }

    检查配置并重启

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

    这个时候去访问,就会在/opt/app/cache下生成缓存文件,并且访问的一直是这个页面

     

    关闭缓存

    检查并重启

    清理指定的缓存

    方式一:rm -rf 缓存目录内容

    方式二:第三方扩展模块ngx_cache_purge

    让部分页面不缓存

    配置语法:proxy_no_cache string ...;
    默认状态:-
    配置方法:http、server、location

    if ($request_uri ~ ^/(url3|login|register|password/reset)){
    set $cookie_nocahe 1;
    }
    location / {
    proxy_cache imooc_cache;
    proxy_pass http://imooc;
    proxy_cache_valid 200 304 12h;
    proxy_cache_valid any 10m;
    proxy_cache_key $host$uri$is_args$args;
    proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
    proxy_no_cache $http_pargma $http__authorization;
    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;
    }

    if ($request_uri ~ ^/(url3|login|register|password/reset)){
    set $cookie_nocahe 1;
    }
    location / {
    proxy_cache imooc_cache;
    proxy_pass http://imooc;
    proxy_cache_valid 200 304 12h;
    proxy_cache_valid any 10m;
    proxy_cache_key $host$uri$is_args$args;
    proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
    proxy_no_cache $http_pargma $http__authorization;
    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;
    }

    检查并重启

    访问url1,会产生缓存,不管怎么刷新都访问这个

    访问url3,则没有缓存,会进行页面更替(轮询)

  • 相关阅读:
    D. Constructing the Array
    B. Navigation System
    B. Dreamoon Likes Sequences
    A. Linova and Kingdom
    G. Special Permutation
    B. Xenia and Colorful Gems
    Firetrucks Are Red
    java getInstance()的使用
    java 静态代理和动态代理
    java 类加载机制和反射机制
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10520437.html
Copyright © 2011-2022 走看看