因此,经过一周的反思,我取得了一些进展,但最终还是遇到了瓶颈。
-
上述提到的所有细节仍然适用。
-
在进行了超负荷的调试后,问题最终被定位如下:当我创建新的 Droplet 时,我借此机会更新了一些当初在原始 Droplet 上无法完成的内容。其中之一就是 IPv6。结果发现,由于某种宇宙般的原因,Digital Ocean 的 IPv6 地址范围大部分被 Google 封禁了。 所以,给未来的建议是:如果你正在设置 Digital Ocean 上的 Discourse 安装,请不要启用 IPv6,因为一旦启用就无法移除,你只能更换 Droplet。
-
修正该问题后,一切按预期运行。然而,由于正常的业务增长(以及 Alphabet 近期的一些策略),我又回到了原点,因为现在 我遇到了这个错误,而且我不知道有任何方法可以“阻止”Discourse 处理 Onebox(我甚至尝试将 YouTube 域名加入黑名单,但无济于事)。这是因为根据我链接的那篇帖子,“这个问题应该在一小时后自行消失”,但我无法暂停我的 rebake 操作……或者我可以吗?我应该这样做吗?其他方案涉及在服务器端进行更改,但这意味着……增加更多 IP?在 Onebox 调用中强制使用“X-Forwarded-For”?
-
另外,还有一个附加问题:为什么 Discourse 要“承担”调用 YouTube 的负载?我的意思是,这个错误表明是服务器的 IP 被标记为执行了所有调用(是的,这是因为 Onebox 的展开功能),但……为什么这不归结为用户加载页面时的行为?是为了性能考虑吗?