今天下午搞这个搞了好长时间,最后还是靠官方的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最后加上虚拟主机的内容
<VirtualHost *:80>
ServerName www.royalchen.com
#浏览器访问www.royalchen.com的时候
DocumentRoot /var/www/html/www #royalchen的内容路径
DirectoryIndex index.html #首页
</VirtualHost>
<VirtualHost *:80>
ServerName www.iicode.cn #浏览器访问www.iicode.cn的时候
ServerAlias iicode.cn *.iicode.cn
DocumentRoot /var/www/html/iicode #iicode.cn的内容目录
DirectoryIndex index.html
</VirtualHost>
最后重启一下httpd服务即可!这样就可以让一台web服务器绑定两个域名了,多个域名的设置也是完全一样的。
下面再稍微说下二级域名的设置。
其实也是完成一样的,以我的royalchen.com为例,拥有blog,mail,home,code等多个二级域名。
首先也是设置正确的DNS解析,例如
然后virtualHost的内容也是差不多的
<VirtualHost *:80>
ServerName home.royalchen.com
DocumentRoot /var/www/html/home
DirectoryIndex index.htm
</VirtualHost>
<VirtualHost *:80>
ServerName blog.royalchen.com
DocumentRoot /var/www/html/blog
DirectoryIndex index.php
</VirtualHost>
重启httpd之后就可以了,需要注意的是,如果使用了*名字进行模糊匹配,则要将该匹配放到最后,因为apache是顺序下来匹配的!
不懂的可以留言或者email给我~~
第一次在自有博客写文章,哈哈哈哈~~~
文章作者:coderguang email: royalchen@royalchen.com
博客链接:http://blog.royalchen.com
备注:自2015-03-25之后,如无特殊说明,文章均为coderguang原创,转载请注明出处,文章由coderguang保留所有权利。
日期:2015-03-25