使用通配符域来提供没有http阻塞的图像

我读过浏览器有时阻止等待来自同一个主机的多个图像,我正在尽我所能来加快页面加载时间。

一个警告:我需要通过HTTPS提供文件。

有关这是否可行的意见:

  1. 为* .domain.com设置通配符证书。
  2. 每当我需要一个图像时,根据文件名的哈希模块5生成一个数字,并将其附加到“img”子域(例如img1.domain.com,img4.domain.com,img3.domain.com等); 哈希将使任何文件名总是使用相同的子域,因此浏览器应该能够caching图像
  3. configurationdynamic虚拟主机logging来指向所有的img#。 子域名到/ var / www / img

我正在寻找关于这个计划的反馈。 我的顾虑是:

  1. 当我的页面有https://链接到多个子域名时,会收到警告吗?
  2. 我谈论的dynamic虚拟主机logging甚至可能吗?
  3. 考虑到这将需要的处理量,是否甚至可能产生任何forms的整体效益? 我可能平均每页半打图像,只有一半在每个页面刷新更改。

预先感谢您的反馈意见。

如果您的通配符DNS项指向您的Web服务器,并且configuration为在所有可能的主机上进行应答,并且您具有通配符SSL证书,则您的scheme是可能的。 我确实看到一些问题:

  1. 通过将每个图像放在不同的主机名上,可以增加加载页面所需的DNS查找次数。
  2. 通过将它们放在不同的主机名上,可以消除浏览器重复使用现有的TCP连接来处理多个图像的能力。 build立TCP连接是“昂贵的”,现在必须build立每个映像的连接,而不是那些将要build立和重用的less数映像在相同的主机名下。

一般来说,服务图像的一些好的做法包括:

  1. 加载来自主域名以外的主机名的映像,但将其限制为一个或两个其他主机名(出于上述原因)。
  2. 确保这些主机名上没有使用cookie(不需要浏览器随同请求一起发送cookie。
  3. 确保为这些主机名上提供的内容启用caching(通常不适用于SSL)。
  4. 结合图像,并尽可能使用CSS精灵。
  5. 其他许多人在其他地方都有很好的logging 。
  1. 不,如果一切都是SSL和有效的证书,你不会遇到麻烦。
  2. 是的,至less在Apache中,它与设置单行ServerAlias *.domain.com一样微不足道
  3. 不是真的在目前的状态。

更合适的解决scheme:

使用一个轻量级的服务器(例如lighttpd与不同的域下,没有任何沉重的模块加载(轻量级进程),并使用适当的设置,每个服务器只有一个或甚至更好,使用nginx作为服务器,将会:

  1. 不要求不同的域/端口/证书。
  2. nginx提供了静态内容,并作为一个反向代理服务器,用于向您的原始的,更重的服务器的“dynamic”请求,该服务器可能在另一个服务器的另一个端口/ IP上本地运行,您的select
  3. 在nginx中设置适当的设置(如keepalive,workers等)
  4. 服务HTTPS没有问题