我们有几个图像和PDF文档可通过我们的网站获得。这些图像和文档存储在源代码管理中,并在部署时复制内容。我们正在考虑创建一个单独的图像服务器来放置我们的库存图像和PDF文档 - 从而大大减少了我们的部署包的大部分。
有没有人有这种方法的经验?
我想知道任何“陷阱” - 例如XSS问题和/或浏览器问题从备用子域提供内容?
答案 0 :(得分:20)
临:
许多浏览器只会分配两个套接字来从单个主机下载资源。因此,如果index.html是从www.domain.com下载的,它引用了6个图像文件,3个javascript文件和3个CSS文件(全部在www.domain.com上),浏览器将一次下载2个,其他阻塞直到套接字空闲。
如果您将6个图像文件关闭到单独的主机上,例如images.domain.com,则会额外获得两个专用于下载图像的插槽。这使资产下载过程并行化,因此理论上,您的页面可以提高两倍的速度。
缺点:
如果您使用的是SSL,则需要为images.domain.com获取额外的单主机SSL证书,或者为* .domain.com获取通配符SSL证书(匹配任何子域)。如果不这样做,将在浏览器中生成警告,指出该页面包含混合安全且不安全的内容。
答案 1 :(得分:8)
您还将使用其他域名,不会在每次请求时发送Cookie数据。这可以提高性能。
答案 2 :(得分:5)
尚未提及的另一件事是您可以使用不同的Web服务器来提供不同类型的内容。例如,静态内容可以通过lighttpd或nginx提供,同时仍然可以在Apache上提供动态内容。
答案 3 :(得分:3)
优点:
- 负载平衡
- 分离不同的功能
缺点:
- 更多工作(当您在主站点上创建页面时,您必须在单独的服务器上维护资源)
像XSS这样的问题是代码没有清理输入(或输出)的问题。唯一可能出现的问题是,如果您有用于身份验证的子域特定cookie,但这确实是一个微不足道的修复。
答案 4 :(得分:2)
如果您正在提供HTTPS并且您从HTTP域提供图像,则在您使用它时会弹出浏览器安全警告警告。
因此,如果您使用HTTPS,如果您不想惹恼用户地狱,则需要为您的图片域购买HTTPS:)
还有其他方法可以解决这个问题,但这并不是特别在答案的范围内 - 这只是一个警告!