• nginx的反向代理缓存


    假设有两台物理机,他们分属于不同的域名,以webgame的游戏运营商和开发商为例,运营商需要获取游戏中的排行数据,开发商为了过多对游戏服务器的请求,会在发起请求的机器上设置缓存(或是让运营商定时过来抓取一次数据)

    nginx设置web缓存,需要用到的相关指令:

    1、proxy_cache

    2、proxy_cache_path

    3、proxy_cache_valid

    需要注意的事项:

    1、windows下面设置缓存不会在指定的path生成的缓存文件

    2、指定的path上一级目录需要存在,否则会报错 (假设缓存文件存放于/usr/local/cc/abc,那么cc目录需要事先建立)

    3、proxy_cache_path 只能存放于http中,不能放置于server或location

    具体的实例:

    proxy_cache_path /usr/local/nginx_rank_cache levels=1:2 keys_zone=rankCache:1m inactive=1h max_size=30m;

    第一次请求过来时,将对应将生成如下目录:

    image

    image

    上面指令中 “/usr/local/nginx_rank_cache”为缓存存放的目录路径

    levels指定该缓存空间有两层hash目录,第一层目录为1个字母,第二层为2个字母,对应上图中的“3”和“b6”

    keys_zone=rankCache 参数用来为这个缓存区起名(proxy_cache 指令需要用到  其后对应缓存区名称)

    :1m 指内存缓存空间大小为1MB

    inactive 的1h指如果缓存数据在1小时(天:d、秒:s、分:m)内没有被访问,将自动被删除;

    max_size=30m 指硬盘缓存大小为30MB

    打开上图中的缓存文件,可以看到如下信息(编码格式有点问题,显示乱码了):

    image

    用Fiddler抓取第一次请求时的数据,将可以看到如下的响应(在不清除缓存的情况下,过期时间内的请求都直接是Cache,Fiddler抓取不到这样的请求):

    image

    image

    从05:58~17:58中间有12个hours,而nginx上也是这样设置的:

    proxy_pass   http://youdomain.com;
    proxy_set_header host otherdomain.com';
    proxy_cache rankCache;
    proxy_cache_valid  200 304  12h;
    proxy_cache_valid any 1m;

    expires 12h;

    proxy_cache_valid指令,可以在http、server、location中使用,如果proxy_cache_valid 不指定状态码,直接指定缓存时间,将只缓存默认的状态码(200、301、302),而如果需要对304也指定,则需要写完整的状态码,如上面写的200 304

    还有其它的指令,如:proxy_cache_methods、proxy_cache_min_uses、proxy_cache_key等,根据实际需要自定义。

    合理的使用缓存,可以提高页面访问的速度、节省带宽~

    有兴趣延伸浏览资料的话,可以看看MSDN上的《Fiddler PowerToy - Part 2: HTTP Performance

  • 相关阅读:
    音频电路设计中的基本知识(-)
    Usart的单线半双工模式(stm32F10x系列)
    RTS与CTS的含义
    NetBIOS与Winsock编程接口
    debian下使用gitosis+gitweb搭建SSH认证的git服务器
    解决:无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次
    Windows Azure Storage Client Library 2.0 入门
    Windows Azure Table Storage 解决 Guid 查询问题
    EF 报【序列包含一个以上的元素】解决办法
    javascript技巧大全套
  • 原文地址:https://www.cnblogs.com/meteoric_cry/p/2046263.html
Copyright © 2020-2023  润新知