我计划尽快获得VP,并有两个我想托管的网站。我使用主机文件为我的开发环境设置了本地VHOSTS设置,以正确移植它。

我的问题希望很简单:当设置两个单独的域时,指向一个VPS服务器的apache足够聪明,例如在本地环境上,可以自动将对domain.com的任何请求过滤到正确的VHOST,就像本地一样?我想确定:)

谢谢!

我问的示例:

说domain1.com和domain2.com都在我的副总裁上。

当有人请求www.domain1.com时,apache看到了这一点,并将其传递到domain1.com vhost文件。当有人请求www.domain2.com时,apache看到了这一点,并将其传递到domain2.com vhost文件。

有帮助吗?

解决方案

简单的答案是“是”,Apache如此聪明。如果您习惯使用与主机文件一起使用本地VHOST文件来模拟本地域,则可以在VPS上应用完全相同的技术。您使用主机文件所做的零件本质上是创建本地名称服务器,除了Apache不知道差异。只需为每个名称VHOST的Servername指令设置Servername指令,您应该发现它与本地相同的工作。

其他提示

从我的答案中提出 仅使用一个VP托管两个域? 因为这里更加相关。

作为完整的初学者,我一直在尝试在一个Apache VPS上托管多个域。教程有太多的信息使我感到困惑。

在下面,我描述了对于完整的初学者,如何使用Ubuntu和Apache在一台VPS服务器上托管多个域。

重要的! 您需要使用root帐户执行大多数操作。

重要的! 如果您之前一直在尝试对Apache配置进行一些更改,请撤消它们。

创建VirtualHosts

为服务器上的域创建文件夹。例如:

/home/apache/domain1

/home/apache/domain2

将index.html文件放在每个文件夹中,并使用任何文本。

This is domain1
This is domain2

/etc/apache2/sites-available 文件夹。

创建文件域1.conf

sudo nano domain1.conf

<VirtualHost *:80>
DocumentRoot /home/apache/domain1
ServerName domain1.com
ServerAlias www.domain1.com
</VirtualHost>

创建文件域2.conf

sudo nano domain2.conf

<VirtualHost *:80>
DocumentRoot /home/apache/domain2
ServerName domain2.com
ServerAlias www.domain2.com
</VirtualHost>

您可以相同的方式创建子域。

sudo nano blog.conf

<VirtualHost *:80>
DocumentRoot /home/apache/blog
ServerName blog.domain.com
ServerAlias www.blog.domain.com
</VirtualHost>

启用创建的站点

sudo a2ensite domain1.conf
sudo a2ensite domain2.conf

重新启动Apache

sudo service apache2 reload

将域重定向到服务器

创建的VirtualHosts仅在将域名重定向到服务器IP时才能工作。域只是可以翻译成IP号的名称。

本地计算机

要测试本地计算机上的配置,您需要编辑主机文件。

sudo nano /etc/hosts

应该看起来像这样。

127.0.0.1       localhost domain1.com domain2.com

主机文件告诉您的计算机,域需要重定向到本地机器。

重要的! 例如,如果在主机文件中为现有域中创建条目,例如

127.0.0.1       stackoverflow.com

您将失去对此网站的访问。

服务器

为了将域重定向到您的Web服务器,您需要创建或修改给定域的“ type dns记录”到服务器的IP地址。您可以通过域注册商提供的面板控件来执行此操作。

如果您不知道服务器的IP地址,请登录该服务器并输入命令行:

ifconfig
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top