如何在同一台VPS上使用apache绑定多个域名(亲测可行!!!)


今天下午搞这个搞了好长时间,最后还是靠官方的API文档才搞定,其实在同一台VPS上绑定多个域名以及绑定二级域名是非常简单的一件事情,只不过是自己完全没经验,导致走了比较多的弯路而已。

先说下我这里的环境:

服务器是腾讯的云服务器:CentOS 6.5 64bit

拥有一个独立的IP地址。

先来看一个概念(基于域名的虚拟主机):

基于主机名的虚拟主机 - Apache 2.2 中文版参考手册

基于域名的虚拟主机相对比较简单,因为你只需要配置你的DNS服务器将每个主机名映射到正确的IP地址,然后配置Apache HTTP服务器,令其辨识不同的主机名就可以了。基于域名的服务器也可以缓解IP地址不足的问题。所以,如果没有特殊原因使你必须使用基于IP的虚拟主机,您最好还是使用基于域名的虚拟主机。下列情况下,你可能会想要使用基于IP的虚拟主机。

我这里的就是基于域名的虚拟主机,首先你需要到你的DNS解析商那里设置正确的A记录。我这里首先讲解如何绑定不同的域名地址。

例如,我有两个域名:royalchen.com和iicode.cn,我希望两个域名都由同一台VPS提供服务。

首先到DNS解析那里设置正确的A记录,例如

iicode的主机记录为www A记录 记录值为182.254.*.*

royalchen.com的主机记录为www A记录 记录值为182.254.*.*(这里的记录值和上一个是完全一样的,即同一台VPS)

然后只需要编辑/etc/httpd/conf/httpd.conf文件即可。

因为是基于域名的虚拟主机,因此要将NameVirtualHost *:80前面的#去掉使其生效!(最好检查一下LoadModule rewrite_module modules/mod_rewrite.so这一句,去掉前面的#使其生效)

然后在httpd.con最后加上虚拟主机的内容

 


ServerName www.royalchen.com #浏览器访问www.royalchen.com的时候
DocumentRoot /var/www/html/www #royalchen的内容路径
DirectoryIndex index.html #首页


ServerName www.iicode.cn #浏览器访问www.iicode.cn的时候
ServerAlias iicode.cn *.iicode.cn
DocumentRoot /var/www/html/iicode #iicode.cn的内容目录
DirectoryIndex index.html

最后重启一下httpd服务即可!这样就可以让一台web服务器绑定两个域名了,多个域名的设置也是完全一样的。

下面再稍微说下二级域名的设置。

其实也是完成一样的,以我的royalchen.com为例,拥有blog,mail,home,code等多个二级域名。

首先也是设置正确的DNS解析,例如

home A 182.254.*.* blog A 182.254.*.*(和上面那个是同一个) 一样需要打开NameVirtualHost *:80

然后virtualHost的内容也是差不多的


ServerName home.royalchen.com
DocumentRoot /var/www/html/home
DirectoryIndex index.htm


ServerName blog.royalchen.com
DocumentRoot /var/www/html/blog
DirectoryIndex index.php

重启httpd之后就可以了,需要注意的是,如果使用了*名字进行模糊匹配,则要将该匹配放到最后,因为apache是顺序下来匹配的!

相关内容