V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
echotpq
V2EX  ›  问与答

阿里云 CDN 的 BUG 还是我自己的 nginx write 设置有误?

  •  
  •   echotpq · 2017-07-30 20:13:16 +08:00 · 1710 次点击
    这是一个创建于 2674 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网站不使用 CDN 时一切正常,使用 CDN 时,主页 /index.php ,会被解析到同目录下的 /index1.php (刚开始正常,多人多刷新几次就会解析到 /index1.php ) NGINX rewrite 规则如下:

    if (-f $request_filename/index.php){ rewrite (.) $1/index.php break; } if (-f $request_filename/index.html){ rewrite (.) $1/index.html break; } if (-f $request_filename/index1.php){ rewrite (.) $1/index1.php; } if (!-f $request_filename){ rewrite (.) /index1.php; }

    求教解决方法。

    4 条回复    2017-07-31 17:48:47 +08:00
    ryd994
        1
    ryd994  
       2017-07-30 21:50:51 +08:00 via Android
    if is evil
    用 try_files
    rtfm
    echotpq
        2
    echotpq  
    OP
       2017-07-31 02:20:29 +08:00
    @ryd994 能帮忙完成的修改一下吗?谢谢啦
    if (-f $request_filename/index.php)
    { rewrite (.) $1/index.php break;
    if (-f $request_filename/index.html)
    { rewrite (.) $1/index.html break; }
    if (-f $request_filename/index1.php)
    { rewrite (.) $1/index1.php; }
    if (!-f $request_filename)
    { rewrite (.) /index1.php; }
    sansara14
        3
    sansara14  
       2017-07-31 16:06:43 +08:00
    你这个配置我简单理解下:匹配不到上面的三个路径将直接重定向到 index1.php

    ---

    当有若干请求匹配不到上述三个路径后 CDN 将帮你缓存 index1.php ,这样后面用户再用同样的 URL 去访问时肯定会读到 CDN 的缓存 index1.php

    CDN 的缓存策略是根据你的源站配置来匹配的,你需要检查一下你的源站是否给了 CDN 你想要的内容去缓存,这不是 CDN 的 BUG..

    ---

    你可以参考下官方 try_files 的配置文档来修改:

    http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files

    ---

    或者类似的测试文章,你可以在配完后自己先验证一下

    http://homeway.me/2015/05/22/nginx-rewrite-conf/

    希望可以帮上忙。
    echotpq
        4
    echotpq  
    OP
       2017-07-31 17:48:47 +08:00
    @sansara14 谢谢您的回复。
    理论上,用户访问 http://首页.com 时,应该是请求 /index.php
    我的 nginx rewrite 里面已经设置了
    if (-f $request_filename/index.php)
    { rewrite (.) $1/index.php break; }
    理论上,CDN 不应该把 /index1.php 的缓存输出给用户

    暂时不知道哪里出了问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3046 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:50 · PVG 21:50 · LAX 05:50 · JFK 08:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.