gpt4 book ai didi

ruby-on-rails - etags 和服务器群

转载 作者:行者123 更新时间:2023-12-04 06:44:52 26 4
gpt4 key购买 nike

我从著名的缩放 Rails 截屏视频中收集到,当您的站点变得越来越大时,代理缓存是要走的路。代理缓存使用 etag 等,因为 etags 可以更具体,强大的验证器可能是要走的路。但是,我也听说在服务器场场景中,etag 不是正确的解决方案,因为它可能因服务器而异(如何?)

这似乎是矛盾的,即如果他们正在运行大型负载平衡服务器群,则很可能正在实现基于电子标签的代理缓存。那么如果电子标签在这种情况下失败了,他们怎么办呢? :last_modified 并不是一个很好的选择。

在 Rails 应用程序中,假设我在 post index 操作中的 etags 是

:etag => "all_posts_#{Post.count}".

如果它是负载平衡的服务器群,这会因服务器而异吗?

最佳答案

通常,当他们谈论跨服务器的 Etags 时,这与 Apache 提供的静态连接有关。默认 Apache includes the file's inode in the Etag .如果文件不在共享资源上(如 NFS 导出的 NAS),则每个服务器上的文件 inode 将不同。通常,建议将 Apache 配置为:

FileETag MTime Size

但如果修改时间因服务器而异,即使这样也可能会有所不同。

但是,对于非静态内容,您是在代码中生成 Etag,因此它在多个服务器上是相同的。

关于ruby-on-rails - etags 和服务器群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3860243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com