2010-07-25 61 views
1

我正在考虑添加另一个静态服务器到一个Web应用程序,所以我会有static1.domain.tld和static2.domain.tld。从不同的静态服务器使用相同的缓存

关键是要使用不同的域来更快速地加载静态内容(同时进行更多并行连接),但是“麻烦”我是“如何让用户的浏览器看到static1.domain.tld/images/whatever.jpgstatic2.domain.tld/images/whatever.jpg是一样的文件“?

是否有一个技巧来完成这与标题或我将不得不定义哪个文件在哪个服务器上?

回答

2

不,没有办法告诉浏览器两个URL是相同的 - 浏览器通过完整的URL进行缓存。

你可以做的是确保你总是使用相同的图像相同的网址。 IE浏览器。所有以A-M开头的图片都放在服务器1上,N-Z放在服务器2上。对于真正的实现,我会使用基于名称或类似名称的哈希,但可能有图书馆会为你做这种事情。

1

您需要有这两个服务器能够响应发送到static.domain.tld的请求。我已经看到了实现这一目标的多种方法,但它们都很低。我知道的两个:

  • 使用DNS循环法,以便主机名到IP地址的映射随时间而变化;非常大的网站经常使用这种变化,因此内容实际上是从靠近客户的CDN服务的。
  • 使用黑客入侵的路由器配置,以便多个机器(具有不同的MAC地址)应答IP地址;这在实践中非常有效,但要求机器在物理上靠近。

您还可以根据可能是随机的东西(例如,路径的MD5散列中的特定位)指向不同的服务器,在“可见”级别进行扩展。而且,最重要的是,所有这些技术都使用软件堆栈的独立部分来工作;你可以用你想要的任何组合来使用它们。

相关问题