S闻名于世的503‘

昨天,2021年6月8日,在大约一个小时的时间里,世界看到了这样的事情:

../_images/fastly_503.png

(警觉的读者会注意到它说的是“调解”,而不是“冥想”。我不知道为什么,但我知道该问谁,而且我会的。)

例如,人们在某种程度上情有可原地跳过这条错误信息,抱怨它太简洁了 Max Rozen 世卫组织对好的和合理的错误信息提出了一些好的和合理的建议。

但他的所有建议都需要一定数量的环境信息,而我们在Varnish缓存项目中没有也永远不会拥有这些信息。

当瓦尼什到达底部时, builtin.vcl 错误是,我们不知道Varnish实例运行在哪里,它为谁运行,它为什么信息服务,它为谁服务,最关键的是,什么信息可以安全地与客户端共享。

这就是为什么默认的“503上师冥想”只提到 XID :xid是一个现时值,实际上是一个随机数,但它允许负责该Varnish实例的人员挖掘他们的日志,并找出这个特定请求发生了什么。

我想要注意的另一件事是,您绝对不希望发生的一件事是“优先级反转”,即产生错误消息需要更多的CPU、数据库访问或带宽,而不是产生预期的结果。

此错误消息在所有方面都是最小的。

我很确定我从Fastly的CDN上看到过正常的503,它们不是这个样子的,所以昨天Fastly肯定出了严重的问题。

尽管我确信XID没有以任何方式帮助他们调试这个特定的问题,但我很高兴地看到我们的“最后的错误消息”做了它应该做的事情,就像它应该做的那样。

第一次503压力测试

当我们发布Varnish的第一个版本时,文本“Varnish缓存服务器”链接到了项目主页。

这个链接对我们来说就像是一场“病毒式营销活动”:当网民在另一个网页上看到503,通常是竞争对手的网页时,他们点击链接,了解他们正在运行的是什么软件。

由于每个人在第一次尝试运行Varnish时通常都会犯几个错误,所以越来越多的网络用户了解了Varnish缓存。

因此,有关Varnish缓存的消息传遍了全球。

一直到中国。

在那里,中国国家铁路公司推出了Varnish缓存。

犯了一些初学者的错误。

那天,很多中国网民都了解到了Varnish缓存。

和其他许多中国人一样,他们拿到的不是火车时刻表和火车票,而是几行英语,他们中的绝大多数人都不读或听不懂。

但其中也存在某种联系。

他们做了任何明智的网络用户都会做的事情。

他们点击了链接。

和DDoS的瓦尼什缓存项目服务器。

..。以及服务器所在的Redpill-Linprox数据中心。

..。以及宣布该数据中心前缀的诺维吉亚互联网服务提供商。

事实上,他们实际上打败了挪威。

(更新:我现在被来自挪威的人告诉我,这并没有太多的DDoS。由于我住在丹麦,我显然只知道这件事。(我自己体验到的唯一影响就是无法访问Trac服务器)。一路走来,有人泄露了这个故事。

然而,这确实促使我追踪到了准确的时间:2010年5月的Varnish版本2.1.2有链接,而同年7月的2.1.3版本没有。)

我的朋友们,这就是为什么Varnish缓存中的最后错误消息甚至不再包含链接。

/phk

PS:这篇文章的标题当然是对 John R. Garman's famous article