在同一服务器上使用子域名:好还是坏?为什么?

在同一服务器上使用子域名:好还是坏?为什么?

我正在开发一个基于 HTML-CSS-JQuery 的简单网站,并选择000网站主机作为免费托管服务提供商。

它为我提供了足够的空间和带宽以及基于 Unix 的共享 Apache 服务器。

现在回到我的问题,我曾在 Google 上搜索过管理子域名(尤其是静态数据)的利弊,最后得出结论,子域名是个好主意,可以分担 HTTP 请求和响应的负载。

但是,如果我只有一台可用且也是共享的服务器,该怎么办?

在同一台服务器上拥有子域名是否最佳,还是只有一个域名和文件夹划分更好?

答案1

URL 中有多个主机名以前是非常重要。主要有两个原因,如下所示。但今天我想说,这往往不那么重要。

原因是/曾经是:

  • 分片(重载术语):旧版浏览器只会为每个主机名打开 2 个连接。因此,如果从中检索所有 HTML、CSS、JS 和 IMG 文件,则www.company.com浏览器最多会下载 2 个文件。在内部 URL 中使用多个主机名,即http://www.company.com以及shard1.company.comshard2.company.com将加快下载速度。这不再重要,因为所有现代浏览器都使用 8 个或更多的并行连接每个主机名。

  • 无 Cookie 的子域名:假如说www.company.com设置了一些 cookie 用于登录状态和分析等内容,那么从无 cookie 的域提供静态文件例如static-files.company.com。这在今天仍然适用,并且仍然有用——但这是一个较小的优化。Cookie 通常很小,传输它们所需的时间很短,但当然所有这些都加起来了。

爆料此事的经典书籍是Steve Souders 撰写的“高性能网站”。书中的一些具体建议有些过时了,但它仍然是目前最好的前端性能工程全方位介绍。

答案2

使用不同的子域名提供静态文件可能会缩短页面加载时间,这不仅可以获得更多的带宽或负载平衡优势,而且尤其有利于浏览器管理与远程服务器的数据连接:使用唯一的域名提供一堆文件将限制并行传输的数量,因为浏览器不想使网络服务器过载。

处理静态文件的更好方法应该是使用内容分发网络而不是网络服务器。

如果您想要了解有关主题的总体概述以及加快页面加载速度的相关技术,请查看此处: http://developer.yahoo.com/performance/rules.html

答案3

拥有子域名允许在每个域名级别处理 Cookie。如果您的应用可以从中受益,那么您需要子域名。

如果您不断发展并将每个子域名托管在不同的机器上,那么拥有子域名还将允许您进行扩展,而不必在转换期间进行一些疯狂的重写。

拥有子目录要简单得多,因为无需额外配置。没有额外的 DNS 记录,没有额外的虚拟主机等。

真的,这取决于你。考虑未来的发展,选择最适合你的。

相关内容