发布于 2026-01-06 5 阅读
0

等等,为什么:Heroku 不希望你裸露某些网站 😱 我们需要的不只是 A 记录 大型网站需要大型集群 A 记录变成 CNAME 记录 CNAME 记录太保守了 等等,但是 DEV 记录是裸露的 所以等等,DEV 记录应该改吗?

等等,为什么:Heroku 不希望你裸体

有些网站竟然是裸体的😱

我们需要的不只是“A”级唱片。

大型网站需要大型集群

A 变成 Cname

CNAME 是个保守派

哇,哇,哇,但是DEV是裸体的

等等,开发者应该更改吗?

www.这是一个子域名。我花了很长时间才意识到这一点。

Reddit 切换到新的用户体验界面时,他们创建了一个按钮,如果你真的old.reddit.com回滚到之前的版本,可以使用这个按钮。 一个理智且可用的体验那台老旧的机器。

很长一段时间,我都以为它坏了。我会打开地址栏,在 `<head>` 和 ` www</head>`之间reddit.com输入 `<body>`,.old这样就会出现:

https://www.old.reddit.com
Enter fullscreen mode Exit fullscreen mode

那会导致我的浏览器崩溃,并出现 SSL 错误:

SSL错误

我脑海中的形象www并不是像old.或那样的子域名blog.,而是“最初那些垃圾的一部分”。

每个网站都有www吧?就像https://这样之类的,对吧?

有些网站竟然是裸体的😱

如果一个域名没有子域名(例如:)dev.to,我们称其为裸域名

很多网站选择以“裸体”示人,原因和我搞不清楚如何访问它们的原因一样。 更好的老版Reddit:www很奇怪。

大多数用户不了解 www 的工作原理,也不知道它存在的意义。如今,浏览器会自动补全甚至隐藏 www。许多使用 www 的网站都会将裸域名重定向到带 www 的版本,所以大多数人都会忘记它的存在。

从用户的角度来看,www 感觉就像是 Web 1.0 时代的爵士乐,充满了炫目的 GIF 动画和点击计数器。

Web 1.0

我们需要的不只是“A”级唱片。

如果你读过我的上一篇文章,你就会知道域名是通过资源记录进行管理的。

当我们设置网站时,有两种常见的网站可以选择使用:A记录和CNAME记录。

通过 AA记录,我们可以为域名的“根”(Apex)或根服务器指定一个硬编码的 IP 地址。例如dev.to(截至撰写本文时),域名的 A 记录如下所示:

dev.to.         299 IN  A   151.101.2.217
dev.to.         299 IN  A   151.101.194.217
dev.to.         299 IN  A   151.101.66.217
dev.to.         299 IN  A   151.101.130.217
Enter fullscreen mode Exit fullscreen mode

大型网站需要大型集群

在你最爱的猫咪图片网站的背后,一个奇迹正在发生。一台台旋转的计算机正在接收你的网络搜索信息。计算机以极低的成本频繁地启动和停止。哔哔啵啵。世界照常运转。

大多数“大型”网站都运行在多台彼此独立工作的计算机上。如果一个网站突然获得巨大的流量(例如Segment在板球比赛期间的流量),系统会自动启动新的计算机来处理负载。

这些计算机需要各自的 IP 地址,这样我们才能开始共享流量。许多托管云服务提供商,例如 Heroku,会为您完成所有这些工作。

你把代码给他们,他们监控你的流量,然后用3D打印机打印一台预装了Heroku系统的MacBook,贴上Heroku的标签来应对流量高峰。大概是这样;我也不太清楚,我不是专家。

A 变成 Cname

您可以向您的域名添加大量 A 记录来支持多个不同的服务器,但归根结底,A 记录无法支持动态 IP。

你不能直接添加一个新的IP地址就指望它能正常工作。DNS完全生效可能需要长达24小时!

等到你的网站能够向全世界介绍你的新机器时,你的销售高峰期已经过去了。

相反,我们可以CNAME在这里使用一条记录。CNAME 记录很特殊,因为它们不需要指向 IP 地址,它们可以指向另一个域:

app.segment.com.    252 IN  CNAME   segment.com.
Enter fullscreen mode Exit fullscreen mode

这样一来,我们就可以将新IP地址的问题转嫁给主机提供商(例如Heroku)。事实上,Heroku的文档中正是这样建议的

CNAME 是个保守派

根据 DNS 规范,你不能在裸域名上使用 CNAME 记录。

所以我们需要用到我们的✨子域名✨。解决这个问题最常用的子域名是什么?

www yaaaa

哇,哇,哇,但是DEV是裸体的

我知道,这听起来很吓人。不过,这可能并不是什么大问题。开发人员主要发布的是静态内容,而且是通过 CDN 进行的。

我们之前看到的那些151.101.x.xIP地址?它们是Fastly的IP地址。我猜这四个IP地址都是任播IP地址。这是像Fastly这样的CDN服务提供的一种变通方案,但根据Fastly的文档它比直接使用CNAME记录www域名更昂贵,性能也更差

等等,开发者应该更改吗?

可能不行。现在更改域名可能会引发一系列问题。此外,开发人员可能还应该考虑 URL 的可用性。

计算机速度会随着时间推移而加快,但易用性,易用性,却始终不变。

但是,在搭建网站时,您应该仔细考虑这一点www。否则,将来可能会出现很多问题。

文章来源:https://dev.to/flaque/what-wait-why-heroku-doesnt-want-you-to-be-naked-1j0h