2010-08-16 37 views
10

我正计划尽快获得VPS并拥有两个我想承载的站点。我有我的本地虚拟主机设置为我的开发环境使用主机文件来正确移植它。与Apache的VPS上的多个域名

我的问题很简单:当设置两个单独的域指向一个VPS服务器时,Apache足够智能,就像本地环境一样,可以自动将domain.com的任何请求过滤为正确的VHOST请求在本地吗?我只想确定:)

谢谢!什么我问

例子:

说Domain1.com和Domain2.com都在我的VPS。

当有人请求www.Domain1.com时,apache会看到并将其传递给domain1.com虚拟主机文件。 当有人要求www.Domain2.com时,apache会看到并将其传递给domain2.com vhost文件。

回答

10

简单的答案是'是',Apache就是那么聪明。如果您习惯将本地虚拟主机文件与主机文件一起使用来模拟本地域,则可以在VPS上应用完全相同的技术。您使用hosts文件所做的部分实质上是创建本地名称服务器,除此之外,Apache不知道其中的差别。简单地为每个命名的虚拟主机设置ServerName指令,你应该发现它和本地一样。

+0

太好了!感谢您为我确认。 – 2010-08-16 16:47:11

9

重新从Hosting two domains using only one VPS?重新填写我的答案,因为它在这里更加相关。

作为完整的初学者,我一直试图在一台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文件夹。

创建文件domain1.conf

sudo nano domain1.conf 

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

创建文件domain2.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 

域名重定向到服务器,如果你重定向你的域名服务器的IP

创建VirtualHosts才会工作。域名只是可以转换为IP号码的名称。

本地计算机

为了测试本机上配置,你需要编辑hosts文件。

sudo nano /etc/hosts 

它应该看起来像这样。

127.0.0.1  localhost domain1.com domain2.com 

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

重要!如果您在现有的域hosts文件条目,例如

127.0.0.1  stackoverflow.com 

你将失去​​进入这个网站。

服务器

为了域名重定向到你的Web服务器,您需要创建或修改给定域到您的服务器的IP地址“A”型DNS记录。您可以通过域名注册商提供的面板控制来完成。

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

ifconfig