Drupal文件系统

为了尝试和改善加载时间,我想创build一个Drupal站点的文件夹的特定子域。 进一步的改进可以是例如在云上具有该特定子域…

我对服务器并不十分了解,而且我还有很多需要了解HTTP请求的知识,但基本假设是,如果资源在服务器之间分开,页面加载速度会更快。

例如,如果我的主页显示image.jpg,下面应加载更快

http://example.com http://files.example.com/image.jpg 

比这个

  http://example.com http://example.com/image.jpg 

由于我正在使用Drupal进行开发,因此我知道可以在“站点configuration”中更改我的文件path。 我还没有尝试在文件系统path字段中input绝对URL,但是我不觉得这个解决scheme是灵活的,因为这意味着我的本地开发站点上有相同的path。

我能想到的唯一解决scheme是在我的服务器上创build一个符号链接,在这种情况下,我想知道它是否会实际达到预期的效果,即上面的示例。

我不确定是否足够清楚,所以如果您需要进一步澄清,请不要犹豫留下评论。

你之后的优势是让浏览器增加并发连接的数量。 为了达到这个目的,内容必须由不同的(子)域来提供。 换句话说,指向静态文件的网页上的URI必须改变。

浏览器不关心文件在你的服务器上的位置,只关心它们被引用的(子)域。 通常情况下,这将需要使用一个Drupal模块来重写页面生成时的链接。 (也就是说,网页上的实际链接需要更改 – 而不是幕后的内容 – 符号链接,redirect和反向代理在这里没有帮助。)您可能需要查看CDN模块以获取类似实现的示例。

一旦你的网页上有正确的url,那么你需要提供这些(子)域的内容。 由于您已经具体提到了使用子域,所以典型的过程将需要为指向子域的域添加(CNAME)DNS条目; 在您的Web服务器上设置一个VirtualHost(例如Apache,Nginx,Lighttpd等),并使用与您的子域相匹配的服务器名称; 并将文档根指向您的静态文件。 这是更改文件path可能相关的地方 – 如果Drupal将file upload到子域的文档根目录(假定文件所有权和权限与您的主站点相同) – 或者您可以使用符号链接的想法 – 但是您的Web服务器需要设置为遵循符号链接。

值得一提的是,从一个子域中提供内容有一个“成本”。 它需要额外的DNS查询。 有时候这个成本会超过并发的收益,特别是如果你只是提供一些静态文件。 通过最小化呈现所有内容所需的请求数量并限制阻塞脚本,可以获得最佳的“感知”性能。 除了其他因素之外,还可以从与主站点相同的(子)域中提供这些初始资源,并为您的“静态”子域中的其他内容(例如图像)提供服务。