nginx缓存配置

概述

Cache的3属性

需要注意:

200 304 状态说明

Nginx设置缓存有两种方式:

缓存机制

nginx 缓存类型

nginx 代理缓原理

缓存内容

缓存规则

扩展

nginx 缓存配置项

expires配置
proxy_cache配置
proxy_cache_path配置
proxy_cache_valid配置
proxy_cache_methods配置
proxy_cache_key string
proxy_cache_min_uses
proxy_cache_bypass
proxy_no_chache string
proxy_cache_use_stale
proxy_cache_lock
proxy_cache_lock_timeout

缓存清除

清除缓存配置
      
        location ~ /purge(/.*) {
          allow       127.0.0.1;
          allow       192.168.55.0/24;
          deny        all;
          proxy_cache_purge cache_one $1$is_args$args;
        }
      
    
注意:使用proxy_cache_purge清除缓存,必须提前安装ngx_cache_purge模块,安装模块必须基于编译安装的Nginx。之后使用url访问即可清除对应缓存,如cache.linuxds.com/purge/nginx.png即可清除cache.linuxds.com/nginx.png此文件的缓存。
脚本清除
清除缓存脚本如下,必须在缓存服务器上执行,
[root@nginx01 ~]# vi nginx_cache_clean.sh
      
        #!/bin/sh
        #****************************************************************#
        # ScriptName: nginx_cache_clean.sh
        # Author: null
        # Create Date: 2020-06-24 00:03
        # Modify Author: xhy
        # Modify Date: 2020-06-24 00:03
        # Version:
        #***************************************************************#
        echo -e "\n"
        echo -n -e "\e[35;1m请输入Nginx Proxy_cache缓存的具体路径(提示:可使用Tab补全!)\e[0m\e[34;5m:\e[0m"
        read -e path
        CACHE_DIR=$path
        echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
        echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
        echo -n -e "\e[32;1m请输入删除操作的类型:\n1.按文件类型删除\t2.按具体文件名删除\t3.按文件目录删除\n:"
        read action
            case $action in
        1)
        echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
        echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
        echo -n -e "\e[34;1m 请输入你要删除的缓存文件类型(多个参数可空格隔开)\e[0m\e[34;5m:\e[0m"
        read -a FILE
        for i in `echo ${FILE[*]}|sed 's/ /\n/g'`
        do
        grep -r -a  \.$i ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}'  > /tmp/cache_list.txt
        for j in `cat /tmp/cache_list.txt`
        do
          rm  -rf  $j
          echo "$i     $j 删除成功!"
        done
        done
        ;;
        2)
        echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
        echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
        echo -n -e "\e[33;1m 请输入你要删除的缓存文件具体名称(多个参数可空格隔开)\e[0m\e[34;5m:\e[0m"
        read -a FILE
        for i in `echo ${FILE[*]}|sed 's/ /\n/g'`
        do
        grep -r -a  $i ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}'  > /tmp/cache_list.txt
        for j in `cat /tmp/cache_list.txt`
        do
          rm  -rf  $j
          echo "$i  $j 删除成功!"
        done
        done
        ;;
        3)
        echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
        echo -e "\e[32;1m----------------------------------------------------------------\e[0m"
        echo -n -e "\e[33;1m支持的模式有:\n1.清除网站cache目录下的所有缓存:cache.aa.com/data/cache/\n2.清除网站shop下的所有缓存:cache.aa.com/data/upload/shop\n3.清除网站根目录下的所有缓存:cache.aa.com\e[0m\n"
        echo -n -e "\e[34;1m 请输入你要删除的缓存文件具体目录\e[0m\e[34;5m:\e[0m"
        read -a FILE
        for i in `echo ${FILE[*]}|sed 's/ /\n/g'`
        do
        grep -r -a  "$i" ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}'  > /tmp/cache_list.txt
        for j in `cat /tmp/cache_list.txt`
        do
          rm  -rf  $j
          echo "$i  $j 删除成功!"
        done
        done
        ;;
        *)
        echo "输入错误,请重新输入"
        ;;
        esac