Drupal 文件系统

Drupal 文件系统

为了尝试缩短加载时间,我正在考虑为 Drupal 站点中的文件夹创建一个特定的子域。进一步的改进可能是将该特定子域放在云端……

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

例如,如果我的主页显示 image.jpg,则以下内容加载速度应该更快

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

比这个

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

由于我使用 Drupal 进行开发,我知道我可以在站点配置中更改文件路径。我还没有尝试在文件系统路径字段中输入绝对 URL,但我发现这种解决方案不够灵活,因为这意味着在我的本地开发站点上具有相同的路径。

我能想到的唯一解决方案是在我的服务器上创建一个符号链接,在这种情况下,我想知道它是否真的能实现预期的结果,即上面的例子。

我不确定是否足够清楚,所以如果您需要进一步说明,请随时发表评论。

答案1

您所追求的优势是让浏览器增加并发连接数。要实现这一点,必须从不同的(子)域提供内容。换句话说,必须更改网页上指向静态文件的 URI。

浏览器并不关心文件在服务器上的位置,只关心它们引用的(子)域。通常,这需要使用 Drupal 模块在生成页面时重写链接。(即,网页上的实际链接需要更改 - 而不是幕后操作 - 符号链接、重定向和反向代理在这里无济于事。)您可能需要查看CDN 模块作为类似实现的示例。

一旦您的网页上有正确的 URL,您就需要从这些(子)域提供内容。由于您特别提到使用子域,典型的过程将包括为您的域添加指向子域的 (CNAME) DNS 条目;在您的 Web 服务器(例如 Apache、Nginx、Lighttpd 等)上设置 VirtualHost,服务器名称与您的子域匹配;并将文档根目录指向您的静态文件。这是更改文件路径可能相关的地方 - 让 Drupal 将文件上传到您的子域的文档根目录(假设文件所有权和权限与您的主站点相同) - 或者您可以使用符号链接的想法 - 但您的 Web 服务器需要设置为遵循符号链接。

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

相关内容