菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域名-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域名

coderandroid 2013-08-11 20:08:44 28040
简介:
       对于我们新手,建站后,随着个人兴趣的不断发展或者网站的相关内容不断丰富。一个一级域名已经不能满足我们的需要了。对于自己有域名的站长来说,域名提供商是会提供非常多的二级域名转向的。就拿我的小站来说,我的域名是万网的,万网提供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搭的一个博客



域名解析 应用服务中间件 网络安全 PHP 开发工具 nginx Windows
分享到
取消 提交回答
全部回答(26)
  • 迷羊迷羊哥
    2018-11-01 16:16:45
    Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    0 0
  • 金不换
    2018-10-31 18:54:42
    Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    https://m.aliyun.com/act/team1111/#/share?params=N.tMBfCRTAgT.9vc5lacz
    0 0
  • jppqbg
    2018-10-31 18:35:07
    Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    备案哦
    0 0
  • 魔君
    2016-02-23 09:43:14
    Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    学习学习、、、
    0 0
  • pangchangfei
    2014-11-19 00:27:58
    Re:菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域 ..
    0 0
滑动查看更多

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题