0

我们将网站的静态文件(图像、javascript 和 css)存储在 Google Storage 存储桶中,其中包含用于不同类型资源的不同文件夹。每个文件都通过其名称以及通过 CNAME 记录映射到相应 Google Storage 存储桶的自定义子域进行访问。

这种方法效果很好。然而,今天,当尝试以 Chrome 的隐身(隐私浏览)模式访问我们的主网站时,网站上的所有页面都无法加载。经过一些侦查工作,我们确定问题出在 Google 存储中的文件未加载。

不幸的是,这似乎不是谷歌浏览器特有的问题。它也出现在 Firefox 和 Internet Explorer 的隐私浏览模式中(至少在我们用于测试的 Windows 8.1 Professional 平台上)。

只有当我们使用基于 CNAME 的方法来访问文件时,才会出现问题。例如,如果在私人浏览器窗口中使用此方法来访问我们在 Google Storage 上的图像文件之一,

Google Storage 上的人群图片 - 直接访问 Google Storage

可以毫无问题地查看该文件。另一方面,如果使用 CNAME 方法在私人浏览窗口中查看文件,如下所示

Google 存储上的人群图片 - 通过 CNAME 访问

图像不会加载。

更糟糕的是,由于我们不完全了解的原因,一旦在隐私浏览窗口中出现此问题,在某些浏览器的情况下,它将继续干扰在常规(非隐私浏览)浏览器窗口中正确查看网站.

有没有人遇到过这个问题,如果有,找到解决方案了吗?

提前感谢任何提示或建议。

更新 (2015-05-26)

这个问题仍在调查中。它可能是特定于 ISP 的,尽管我们的 ISP (Verizon) 认为这是 Google 的问题。昨天尝试通过调整一些 DNS 设置来解决问题似乎解决了问题,但这只是暂时的。今天我们又开始遇到这个问题了。随着更多信息的出现,我将进一步更新此帖子。

附加更新 (2016-08-25)

(注:我最初在2015-05-26写了这个更新,但没有发布,今天才发现。我添加它是为了完成问题的描述。)

此问题已得到解决。我不能确定问题的根源是什么,但我可以提供更多信息,说明问题的本质是什么以及可能解决了什么问题。

正如我在下面的评论中提到的,这似乎是一个相对孤立的问题。进一步调查显示,该问题仅在美国通过 Verizon Internet 服务(陆上或移动)访问特定子域时发生。我不知道问题是 Verizon 系统内的区域问题,还是整个 Verizon系统。但我确实知道它影响了使用 Verizon 的固定电话和移动访问。

问题也随之演变。无论使用何种浏览模式,在浏览器的隐身模式下访问子域中的文件时都会出现问题。也就是说,只有在浏览器中尝试从子域加载文件时才会出现问题。可以毫无问题地检索文件,例如wget. 此外,ping子域在 Verizon 网络上也可以正常工作。

随着问题变得更加严重,我决定彻底检查与子域相关的 DNS 设置。在这里,我发现了可能导致问题的原因。域名注册商的 DNS 设置与我们使用的(单独的)DNS 服务之间存在细微差异。

这种差异并未导致关于应如何解决子域的报告相互矛盾(这可能是过去没有发生此问题的原因)。但是,如果我没记错的话,它导致 DNS 服务为子域提供 CNAME 记录,而注册商的 DNS 信息没有完全确认 DNS 服务有权提供该信息。

这种差异已得到纠正。在一两个小时内,问题就自行解决了——任何使用上面两个链接查看文件的人都应该可以成功使用这两个链接。

但是,我不能肯定地说,我们为解决差异而对 DNS 设置所做的更改,或者 Verizon 的一些更新,是否是解决问题的原因。但是,我会说,我从未向 Verizon 报告过这个问题。(我没有走那么远。)

尽管 DNS 差异已经存在一两年多,并且没有造成我们意识到的任何问题,但我个人认为是导致问题的原因。

4

0 回答 0