简介:
对于我们新手,建站后,随着个人兴趣的不断发展或者网站的相关内容不断丰富。一个一级域名已经不能满足我们的需要了。对于自己有域名的站长来说,域名提供商是会提供非常多的二级域名转向的。就拿我的小站来说,我的域名是万网的,万网提供500条二级域名的免费解析记录,当然如果付费还可以提供的更多。下面是我用万网解析了的10多个二级域名
说到这里,也许应该先介绍一下二级域名的作用
1、可以使网站分类更明确:
一个网站如果内容很多,有论坛,有博客又有一些其他广告,文章,乱七八糟别的东西,放到一个目录下,势必显得架构很乱不清晰,如果分开几个目录,每个目录对应一个功能,这样看着也爽心悦目些。
2、便于维护:
如果今天只是想备份博客系统或明天只取一些论坛的数据下来。直接在根目录下再到对应的二级目录就好了,如果都挂在www域名
下,势必要一层一层进入到对应的目录,操作显得不方便;
3、便于用户浏览: 如果用户只青睐于你网站的某一部分功能,比如wordpress,那么他就直接在浏览器中输入二级域名就好了,不用进入www主域在通过链接转来转去的。
对于nginx来说,二级域名绑到服务器的方法,通常是修改default文件,多复制几个以server开始的大括号内容,然后修改里面的ip地址和名字;这样每次创建一个新的二级域名,就要复制一个;我最近在网上找到另一种通过正则表达式的方式,无需修改default这个配置文件,以后每次新增域名解析,直接在网站的根目录先,为二级域名新建立一个目录就好了。
下面详细说明一个这种方式的使用:
1、准备工作 通过ssh hostname进入你的服务器命令行;然后到/etc/nginx/sites-available目录下,输入sudo vim default打开修改我们的nginx配置文件,当然,修改前最好输入sudo cp default default-backup备份一下,以免我们改坏了,还可以恢复;当然,你也可以通过ftp把这个文件传下来,然后用windows上的文字编辑工具修改,最后在传回服务器;
2、初步修改 打开default文件后,在第一个server{后面的listen行后,加入如下语句:
set $mdir 'www';
#这句话是设置默认的配置为www域名;
if ( $host ~* (\w )\.\w \.\w ) {
set $mdir $1;
}
这句话是核心,就是把进来的域名分析一下,然后把前面的名字取出来;关于正则表达式,我并不很精通,通俗的理解为对一个字符串做指定模式的匹配。如上面的if行,斜线是转义,w代表一个单词串,专业名也叫c tokens。*, 是常用的重复定义,其中*表示前面的字符重复0或大于0次,而 表示只能重复大于0次,也就是1次以上;这样通过if语句中的三个w 和两个小点,我们就可以把进到服务器的域名分成通常的三段了,然后用圆括号取出我们想要那一段,比如我们要取出第一段,就在第一段加圆括号,这样它就以$1这个变量的形式返回,比如域名是bbs.aliyun.com,那么这个$1变量就是bbs,再比如域名是cbk.relax.name,那么这个$1变量就是cbk。如果if条件满足,我们就把$mdir的值赋值为$1,也就是域名中的第一段字符;
3、后续修改: 将我们最开始的root定义,改成$mdir变量
root /var/www/$mdir;
在这个括号中将www改为$mdir变量: location ~ \.php$ {
fastcgi_param SCRIPT_FILENAME /var/www/$mdir$fastcgi_script_name;
4、测试 存盘退出,输入service nginx restart,重启nginx使配置生效;
然后到域名提供商增加一个域名试一下,比如cbk,那么在/var/www目录下建立一个cbk目录,放上一个index.html文件
<html>
hello,world, this is second domain test.
</html>
再在浏览器中输入cbk.abc.com,就可以看到二级域名下的信息了。
最后附上我的nginx文件和我的一个二级域名应用供大家参考。
http://cbk.relax.name/ 我用wordpress搭的一个博客