V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iyaozhen
V2EX  ›  编程

一个集群环境下 webserver ETag 计算不一致,造成 Chrome 加载视频失败的小坑

  •  
  •   iyaozhen · 2017-02-17 18:24:12 +08:00 via Android · 3337 次点击
    这是一个创建于 2835 天前的主题,其中的信息可能已经有所发展或是发生改变。
    昨晚上线了一个前端项目,有个背景视频播放功能,但发现在 https 下 Chrome 浏览器播放视频很大概率失败。

    经过一番排查发现 Chrome 是分片下载视频,某个分片下载时 If-Match 头和 ETag 对不上就会报 412 错误,造成视频加载失败。

    详见: https://iyaozhen.com/a-strange-chrome-video-play-problem.html

    感觉这是一个比较典型的坑,所以分享下,也赚点点击量。欢迎大家一起讨论😁
    2 条回复    2017-02-18 08:03:39 +08:00
    ryd994
        1
    ryd994  
       2017-02-18 02:19:06 +08:00 via Android
    1.网站挂了
    2.应该优先考虑根据 IP 或者 cookie 做 pinning
    3.etag 不一致是因为服务器版本不同么
    iyaozhen
        2
    iyaozhen  
    OP
       2017-02-18 08:03:39 +08:00 via Android
    @ryd994 原文里面说明, Apache 默认使用 mtime 和 size 两个参数计算文件 etag ,但是因为部署方式的原因,每个服务器上的文件 mtime 不一致。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1126 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 18:36 · PVG 02:36 · LAX 10:36 · JFK 13:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.