Nginx 的缓冲策略无法继承? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
div class="sep20">
andybest
V2EX    NGINX

Nginx 的缓冲策略无法继承?

  •  
  •   andybest 2015-04-06 17:57:22 +08:00 2544 次点击
    这是一个创建于 3915 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前仅有一个针对 jpg 图片的缓冲策略:
    location ~ \.jpg {
    proxy_cache_valid 7d;
    ...
    }

    现在想加一个针对所有类型文档返回值为 404 的 10 分钟缓冲,配置改为:

    location / {
    proxy_cache_valid 404 10m;
    ...
    }
    location ~ \.jpg {
    proxy_cache_valid 7d;
    ...
    }

    实测访问 http://localhost/xxx.jpg 返回值 404 时以上缓冲并不生效,必须
    location ~ \.jpg {
    proxy_cache_valid 7d;
    roxy_cache_valid 404 10m;
    ...
    }

    这样才生效(但对非 jpg 结尾的文档又不生效了),为什么 location / { 中的缓冲规则不能继承?
    8 条回复    2015-04-06 19:09:22 +08:00
    ericFork
        1
    ericFork  
       2015-04-06 18:18:22 +08:00   1
    请求从 server 段进来的时候能且只能被一个 location 捕获,location / 和 ~ \.jpg 是平级的,没有继承关系。你想继承的话需要写在 server 段里。
    LazyZhu
        2
    LazyZhu  
       2015-04-06 18:19:51 +08:00   1
    参数不能叠加,只能覆盖.
    LazyZhu
        3
    LazyZhu  
       2015-04-06 18:20:53 +08:00   1
    @ericFork location有优先顺序
    ericFork
        4
    ericFork  
       2015-04-06 18:23:04 +08:00   1
    @LazyZhu 嗯,location 的优先顺序还是挺复杂的,现在我习惯上能用 = 就用 = 了,多用路径,尽量减少正则,正则多了之后 debug 麻烦。
    andybest
        5
    andybest  
    OP
       2015-04-06 18:37:36 +08:00
    @LazyZhu 是不同区块的 proxy_cache_valid 参数只能覆盖,无法叠加是吗?
    LazyZhu
        6
    LazyZhu  
       2015-04-06 18:41:10 +08:00   1
    @andybest 不同location不可能同时被匹配到,谈不上参数覆盖问题,我说的location内与server/http的相同参数.
    msg7086
        7
    msg7086  
       2015-04-06 19:05:09 +08:00 via iPhone   1
    平级哪来叠加。又不可能同时匹配2个规则。
    ryd994
        8
    ryd994  
       2015-04-06 19:09:22 +08:00 via Android   1
    不是先 / 然后~ \.jpg这样的
    而是进了~ \.jpg 就出不来了,除非有跳转
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1025 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 18:54 PVG 02:54 LAX 10:54 JFK 13:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86