美文网首页
Nginx常见使用场景-缓存服务器(七)

Nginx常见使用场景-缓存服务器(七)

作者: andpy | 来源:发表于2018-05-25 09:08 被阅读29次

nginx缓存服务器

// 定义目录 空间大小,名字
Syntax: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]
Default:-
Context:http

//proxy_cahe配置
Syntax:proxy_cache zone | off;
Default:proxy_cache off;
Context:http,server,location

//缓存过期周期
Syntax:proxy_cache_valid [code...] time;
Default:-
Context:http,server,location

//缓存的纬度 缓存那些信息
Syntax:proxy_cache_key string;
Default:proxy_cache_key $scheme$proxy_host$request_uri;
Context:http,server,location


//示例
upstream applelife{
    server 192.168.9.1:8001;
    server 192.168.9.1:8002;
    server 192.168.9.1:8003;
}
#需要首先配置 缓存目录,文件目录层级2级,空间名字 10m大小,目录最大大小(超过启动nginx自己的淘汰规则),在60分钟的时间内没有被访问就会被清理,存放临时文件
proxy_cache_path /opt/app/cache levels=1:2 keys_zone=applelife_cache:10m max_size=10g inactive=60m use_temp_path=off;

server{
    ...
    location / {
        #开启缓存
        proxy_cache applelife_cache;
        #基于代理的方式
        proxy_pass http://applelife;
        #对于返回200 304的消息过期时间为12小时
        proxy_cache_valid 200 304 12h;
        #除了以上的状态过期时间为10分钟
        proxy_cache_valid any 10m
        #缓存时那些作为 key
        proxy_cahce_key $host$uri$is_args$args;
        #添加头信息
        add_header Nginx-Cache "$upstream_cache_status";
        
        #当目标服务器返回 错误500等信息,跳过该台服务器,直接访问下一台
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        include proxy_params;
    }
    ...

}

清理指定缓存
方式一, rm -rf 缓存目录内容

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

让部分页面不缓存

//语法
Syntax:proxy_no_cache string ...,
Default:-
Context:http,server,location


//示例
upstream applelife{
    server 192.168.9.1:8001;
    server 192.168.9.1:8002;
    server 192.168.9.1:8003;
}
#需要首先配置 缓存目录,文件目录层级2级,空间名字 10m大小,目录最大大小(超过启动nginx自己的淘汰规则),在60分钟的时间内没有被访问就会被清理,存放临时文件
proxy_cache_path /opt/app/cache levels=1:2 keys_zone=applelife_cache:10m max_size=10g inactive=60m use_temp_path=off;

server{
    ...
        
    #如果url中包含以下路径参数,那么 cookie_nocache 的值为1
    if($request_uri ~^/(url3|login|register|password\/reset)){
        set $cookie_nocache 1;
    }
    

    location / {
        #开启缓存
        proxy_cache applelife_cache;
        #基于代理的方式
        proxy_pass http://applelife;
        #对于返回200 304的消息过期时间为12小时
        proxy_cache_valid 200 304 12h;
        #除了以上的状态过期时间为10分钟
        proxy_cache_valid any 10m
        #缓存时那些作为 key
        proxy_cahce_key $host$uri$is_args$args;
        

        #部分不设置缓存 cookie_nocache上面配置的参数,    cookie_nocache不为0或者空  那么是不会进行缓存的
        proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
        proxy_no_cache $http_pragma $http_authorization;


        #添加头信息
        add_header Nginx-Cache "$upstream_cache_status";
        #当目标服务器返回 错误500等信息,跳过该台服务器,直接访问下一台
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        include proxy_params;
    }
    ...

}   

大文件分片请求
优势:每个子请求收到的数据都会形成一个独立的文件,一个请求断了,其他的请求不受到影响
缺点:当文件很大或者slice很小的时候,可能会导致文件描述符耗尽的情况。

//语法
syntax:slice size;
Default:slice 0;
Context:http,server,location

//查看启动的端口
netstat -luntp |grep 800

相关文章

  • Nginx常见使用场景-缓存服务器(七)

    nginx缓存服务器 清理指定缓存方式一, rm -rf 缓存目录内容 方式二,第三方扩展模块 ngx_cache...

  • 38笔记---nginx

    今日内容 1.介绍nginx 2.常见的web服务器 3.Nginx有哪些使用场景 4.Nginx 安装 配置 启...

  • Nginx常见使用场景-WEB服务(四)

    nginx常见使用场景 静态资源web服务 代理服务 负载均衡调度器slb 动态缓存 静态资源web服务 一,静态...

  • 2.nginx介绍

    第三十八天 Nginx day01 1.Nginx介绍 2.常见的Web服务器 3.Nginx使用场景 静态资源服...

  • Nginx面试题

    什么是Nginx? nginx是一个web服务器,反向代理服务器,缓存服务器 为什么使用nginx 跨平台,配置简...

  • nginx缓存不起作用问题解决方法

    1. nginx不缓存原因 默认情况下,nginx是否缓存是由nginx缓存服务器与源服务器共同决定的, 缓存服务...

  • 简单了解下Nginx

    Nginx基础 1.常见web服务器比较 2.为什么要使用nginx: 连接数(针对于多用户的应用场景):Ngin...

  • 减少 time_wait 连接数量

    问题场景 线上服务器使用nginx 做反向代理,访问链路:client -> nginx -> 服务器,在ngin...

  • nginx 转发 rtmp 直播流

    nginx转发rtmp流 场景描述:服务器1使用nginx-rtmp-module搭建了基于nginx的rtmp推...

  • 一、nginx 之 概述

    Nginx 是一款高性能的 Web 服务器软件。可以作为反向代理、负载均衡与缓存服务器使用。Nginx 是为高并发...

网友评论

      本文标题:Nginx常见使用场景-缓存服务器(七)

      本文链接:https://www.haomeiwen.com/subject/hohyjftx.html