【问题标题】:What could cause an app to be stale when accessing it through CNAME alias?通过 CNAME 别名访问应用程序时,什么可能导致应用程序过时?
【发布时间】:2020-03-20 07:55:34
【问题描述】:

我有一个非常奇怪的情况,我的应用程序的陈旧版本只有在通过其 CNAME 别名访问它时才会被提供。

该应用是使用 Webpack 构建并托管在 Zeit NOW 上的静态节点应用。如果我使用直接的 Zeit URL 访问它,我将获得最新版本和正确的 JS 资产:

https://nates-app.now.sh/index.html -> https://nates-app.now.sh/client/index.eb53e753.js (current)

在 AWS Route53 中,我将 CNAME 设置为别名 www.nates-app.com 到 https://nates-app.now.sh。但是,将我的浏览器指向https://www.nates-app.com 会导致index.html 过时。更奇怪的是,陈旧的 index.html 页面需要陈旧的 JS 和 CSS 资产,这些资产也被成功返回:

https://www.nates-app.com/index.html -> https://www.nates-app.com/client/index.f64812dd.js (stale)

旧版本已超过 48 小时。

Dig 显示几乎相同的结果。 dig nates-app.now.sh 导致以下 ANSWER 部分:

;; ANSWER SECTION:
nates-app.now.sh.   60  IN  A   1.2.3.4
nates-app.now.sh.   60  IN  A   4.3.2.1

dig www.nates-app.com 产生相同的输出,只有一个(预期的)添加显示 ANSWER 部分中的 CNAME:

;; ANSWER SECTION:
www.nates-app.com.  300 IN  CNAME   https://nates-app.now.sh.
nates-app.now.sh.   60  IN  A   1.2.3.4
nates-app.now.sh.   60  IN  A   4.3.2.1

我没有将 AWS Cloudfront 或任何其他 CDN 用于静态资产。

我显然已经清除了浏览器的缓存,甚至关闭和打开了我的 VPN。同事从不同的 ISP 访问互联网时会看到同样的情况。

那么,万维网中的什么可以缓存我网站的(非常)旧版本的 HTML 和随附的资产?

【问题讨论】:

  • 我相信这符合“软件开发独有的实用、可回答问题”的指导方针。
  • 目标 Web 服务器不知道两个主机名之间的 CNAME 关联——它不知道为什么流量路由到它,因为它只看到传入的 Host 标头——所以很可能的解释是它将两个主机名视为两个单独的站点,问题是“为什么?” (为了说明这一点,创建另一个 CNAME 从您的完全不同的域指向同一个地方,您会看到 Web 服务器不知道要提供什么内容,并返回错误或通用页面。)可能是一个问题与 Route 53 无关的网络托管服务提供商。

标签: amazon-web-services networking dns amazon-route53 vercel


【解决方案1】:

很奇怪,当我遇到类似的问题时,解决方案总是刷新浏览器缓存或使用隐身模式。你还有同样的经历吗

【讨论】:

  • 是的,在有无隐身模式的多个浏览器中都是一样的
  • www.nates-app.com。 300 在 CNAME nates-app.now.sh 。正确创建 cname 时没有 https。您的 cname 必须只是 www.nates-app.com。 300 IN CNAME nates-app.now.sh。对吗?
【解决方案2】:

有几点:

Zeit 不支持将 CNAME 直接指向您的 Zeit 子域。您需要在 Zeit 仪表板中配置您的域并设置验证文本记录并将您的 CNAME 分配给 alias.zeit.co。 alias.zeit.co 服务器将您的 CNAME 路由到最新部署。

也有可能,在 Zeit 的配置中,您的域名仍指向项目中较旧的部署。 Zeit 不会自动将域名重新分配给新部署,除非您正在进行生产部署,即now --prod,或者您已将其配置为将推送到 git master 分支视为生产部署。在您的仪表板中,单击Projects,然后单击您的项目名称。如果您没有在最近的部署中看到您的域,那可能是您的罪魁祸首。

【讨论】:

    猜你喜欢
    • 2020-12-21
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多