0

假设我们有shopify.com,一个每个人都可以创建他的电子商店并在他的域下提供的平台,换句话说,用户可以添加他的域。当有人为域名做广告时,幕后实际发生了什么?

据我所知,在 apache2 中,为每个新域创建了一个新的 VirtualHost,指向用户的文件夹。但这是最好和最有效的解决方案吗?

我主要是出于好奇的原因询问这些系统的工作原理(例如 shopify.com 或 webs.com,每个用户都添加一个域)

先感谢您!!

4

1 回答 1

0

你有几个我知道的选项,主要取决于流量是否流向同一个 ip。

设置 DNS 条目时,您可以为子域指定通配符。*.example.com这使得对任何与另一个 DNS 记录不匹配的子域的任何请求都会转到 example.com。

所以,有:

*.example.com        <ip A>
blog.example.com     <ip B>

将使 blog.example.com 转到 <ip B>,example.com 和所有其他子域转到 <ip A>。

这意味着您可以让每个新的子域转到自己的 ip(不太可能)。您也可以在同一个 ip 上捕获它们并在那里处理。

正如您所提到的,您可以为每个创建的新子域添加一个新的虚拟主机。但是,这是一种繁重的解决方案,我认为它通常会涉及重新启动您的网络服务器程序以重新加载新配置。相反,您可以使用诸如重写之类的东西来实现类似于虚拟主机的东西。

有一个重写规则<subdomain>.example.com/<resource> => example.com/<subdomain>/<resource>意味着所有需要的是在包含用户内容的服务目录的根目录中创建一个新文件夹。没有改变配置。另外,我不确定您是否熟悉重写,但是,它们对浏览器/用户是不可见的,因此<subdomain>.example.com/<resource>即使从example.com/<subdomain/<resource>.

这不是一个明确的可能性列表,只是几个可能性。任何大型或可扩展的解决方案都可能涉及多层间接,从而允许更复杂的 DNS 定向、负载平衡和内容服务。

于 2013-06-15T23:19:17.637 回答