Apache httpd.conf 处理多个域运行同一个应用程序

Apache httpd.conf 处理多个域运行同一个应用程序

因此,我们所寻求的是能够做到以下事情的能力:

  • 我们有一个应用程序,可以根据访问它的域加载某些设置。因此,如果您来自 xyz.com,我们会显示不同的徽标,如果您来自 abc.com,我们会显示不同的徽标。代码是相同的,从同一服务器运行只会在运行时检测域

  • 现在我们想要获得一个专用的服务器(有什么建议吗?),它将使我们能够将我们想要的所有域指向该服务器(我们将域的 DNS 更改为我们服务器的 DNS),然后当用户进入某个域时,他们会运行相同的应用程序。

据我所知,现在我们需要在 apache 中创建一个“VirtualHost”来处理这个问题。我们可以创建一个捕获所有域的通配符虚拟主机吗?

我根本不是 Apache 专家。所以如果这个问题有点愚蠢,请原谅。任何详细的帮助都会非常有用。

谢谢

答案1

如果您将 Apache 配置为处理以下请求知识产权,对该 IP 的所有请求都将提供相同的内容。这些域与 Apache 无关。

你会使用VirtualHost如果你想将不同的域名指向同一IP上的不同内容。

答案2

是的,您需要基于 Apache 名称的虚拟主机,并且有许多参考资料可以帮助您进行设置。您可以在同一个 IP 地址上为每个要托管的域名设置虚拟主机,并为每个域设置不同的配置。您还可以设置一个默认配置,用于未定义特定虚拟主机的域名。

不过,需要提醒的是,如果您使用 SSL,那么基于名称的虚拟主机将不起作用,并且每个 SSL 站点都需要不同的 IP 地址。

答案3

在您的 VirtualHosts 文件中,您需要指定DocumentRoot共享目录

DocumentRoot "/home/somesharedfiles/public_html"

我建议不要使用通配符/全部捕获。这将允许任何人将他们的域指向您的服务器并加载您的应用程序。

或者,你可以使用符号链接

ln -s somesharedfiles/public_html site1/public_html
ln -s somesharedfiles/public_html site2/public_html

相关内容