代码之家  ›  专栏  ›  技术社区  ›  Jim

使用Apache的VPS上的多个域

  •  10
  • Jim  · 技术社区  · 14 年前

    我计划得到一个副总裁很快,有两个网站,我想主机。我已经为我的开发环境设置了本地vhosts,使用主机文件来正确地移植它。

    我的问题很简单:当设置两个指向一个VPS服务器的独立域时,Apache是否足够聪明,就像在本地环境中一样,能够自动过滤任何请求域名.com到正确的VHOST像它在本地做的那样?我只想确定:)

    谢谢!

    我问的例子:

    假设Domain1.com和Domain2.com都在我的VPS上。

    2 回复  |  直到 14 年前
        1
  •  10
  •   Peter O'Callaghan    14 年前

    简单的答案是“是的”,Apache就是这么聪明。如果您习惯于将本地vhost文件与主机文件结合使用来模拟本地域,则完全相同的技术可以应用于VPS。处理hosts文件的部分实际上是创建一个本地名称服务器,而Apache不知道其中的区别。只需为每个命名的vhost设置ServerName指令,您就会发现它的工作方式与本地相同。

        2
  •  10
  •   hoefling    7 年前

    把我的答案从 Hosting two domains using only one VPS?

    作为一个完全的初学者,我一直在尝试在一个apachevps上托管多个域。教程有太多的信息,导致我的困惑。

    重要!

    重要! 如果您以前尝试过对apache配置进行一些更改,请撤消它们。

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

    /home/apache/domain1
    
    /home/apache/domain2
    

    放索引.html每个文件夹中包含任何文本的文件。

    This is domain1
    This is domain2
    

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

    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
    

    本地计算机

    要在本地计算机上测试配置,需要编辑hosts文件。

    sudo nano /etc/hosts
    

    应该是这样的。

    127.0.0.1       localhost domain1.com domain2.com
    

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

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

    127.0.0.1       stackoverflow.com
    

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

    ifconfig