在不同子域名上托管图片

12

我的公司有大约30个网站,它们共享相同的代码库并重复使用许多相同的图片。目前,所有网站的图片都托管在一个域上,然后每个其他网站都必须链接到这些图片。

例如, www.example.com/images/hello.jpg

在www.example2.com上,我们有类似于: <img src="http://www.example.com/images/hello.jpg" />

最近,有人告诉我应该将所有这些共享/静态图像放在子域中,但我不知道这样做的优点。我听说可能会稍微提高速度,但我也听说可能会使事情复杂化。能否有人解释一下?

3个回答

17

使用另一个域具有以下几点优势:

  • 使用单独的域可以防止不必要地发送您域名的cookie以获取每个图像请求。减少了每个请求的带宽开销。
  • 大多数浏览器一次只会向特定域名发出一定数量的HTTP请求,因此通过第二个域名提供图像和其他静态内容可能会将同时发出的HTTP请求数量翻倍。
  • 可以考虑使用不同的轻量级Web服务器(如nginx/lighttpd)来提供静态内容。

缺点:

  • 需要管理。
  • 需要进行两次DNS查找而不是一次。

@ceejayoz: +1 谢谢你分享这个有趣的信息。你觉得从不同的域名/子域名并行下载图片也会让网页服务器更快吗? - Marco Demaio
@Marco Demaio 我不认为在 Web 服务器端会有任何区别。 - ceejayoz

3
当浏览器请求静态文件(如CSS和Javascript)时,通常会限制到给定服务器/子域的连接数。将静态文件放在不同的域下可以实现更多并发下载。
如果正确设置,不同的子域可能只是您Web服务器上的一个目录。这取决于您的配置文件。

3

这个问题在几个Stackoverflow播客中都有提到。

一个问题是 - 如果您正在提供https页面,则用户可能会收到关于安全和非安全项混合的警告。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接