开发者社区> 问答> 正文

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

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



展开
收起
coderandroid 2013-08-11 20:08:44 30342 0
26 条回答
写回答
取消 提交回答
  • 专心做阿里云上云服务
    Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    2018-11-01 16:16:45
    赞同 展开评论 打赏
  • Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    https://m.aliyun.com/act/team1111/#/share?params=N.tMBfCRTAgT.9vc5lacz
    2018-10-31 18:54:42
    赞同 展开评论 打赏
  • Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    备案哦
    2018-10-31 18:35:07
    赞同 展开评论 打赏
  • 学习探索元宇宙。所有擅长技术都不擅长。
    Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    学习学习、、、
    2016-02-23 09:43:14
    赞同 展开评论 打赏
  • www.aliyun.net.cn
    Re:菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域 ..
    2014-11-19 00:27:58
    赞同 展开评论 打赏
  • Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    没看懂!
    2014-11-18 23:24:18
    赞同 展开评论 打赏
  • Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    wt学习了 呵呵
    2014-09-12 11:19:48
    赞同 展开评论 打赏
  • 优秀文章-欢迎进行技术分享,感谢你的支持!
    2014-07-07 23:10:16
    赞同 展开评论 打赏
  • Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    哈哈,整太多了,忙不过来。
    2014-07-07 08:39:03
    赞同 展开评论 打赏
  • Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    很不错的教程。学习中
    2014-02-27 11:53:53
    赞同 展开评论 打赏
  • Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    装个面板要这么麻烦???
    2013-08-19 08:51:37
    赞同 展开评论 打赏
  • Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    lz v587
    2013-08-18 08:02:27
    赞同 展开评论 打赏
  • Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    虽,但
    2013-08-16 23:47:02
    赞同 展开评论 打赏
  • 回 13楼(kiddo90) 的帖子
    嗯,谢谢提醒,看了一下,主要是说我这方法用if的话,一个是效率低,一个是对一级域名解析不了。
    不过我这种小站,还可以拉
    2013-08-16 19:25:35
    赞同 展开评论 打赏
  • Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    楼主的方案早已过时

    详见 http://wiki.nginx.org/Pitfalls#Using_If

    http://wiki.nginx.org/IfIsEvil

    If is evil !!!!

    我稍后发给最佳解决方案
    2013-08-16 19:17:36
    赞同 展开评论 打赏
  • 回楼主coderandroid的帖子
    顶一个
    2013-08-14 00:25:19
    赞同 展开评论 打赏
  • Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
    菜鸟贴见到顶,顶完再看!!!
    2013-08-12 21:16:40
    赞同 展开评论 打赏
  • 虽然看不懂,但是看上去很厉害的样子呢1。
    2013-08-12 10:45:17
    赞同 展开评论 打赏
  • 好东西,这个要顶
    2013-08-12 09:24:12
    赞同 展开评论 打赏
  • Re:菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域 ..
       虽不明但觉厉
    2013-08-12 07:46:09
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS块储存产品全面解析 立即下载