阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 27491阅读
  • 27回复

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

级别: 技术砖家
发帖
1088
云币
3800
— 本帖被 梦丫头 从 弹性计算 移动到本区(2014-03-18) —
简介: s%nUaWp~  
       对于我们新手,建站后,随着个人兴趣的不断发展或者网站的相关内容不断丰富。一个一级域名已经不能满足我们的需要了。对于自己有域名的站长来说,域名提供商是会提供非常多的二级域名转向的。就拿我的小站来说,我的域名是万网的,万网提供500条二级域名的免费解析记录,当然如果付费还可以提供的更多。下面是我用万网解析了的10多个二级域名 bpJ(XN}E  
说到这里,也许应该先介绍一下二级域名的作用 ~J wb`g.  
4:$4u@   
1、可以使网站分类更明确:
eg\v0Y!rI  
      一个网站如果内容很多,有论坛,有博客又有一些其他广告,文章,乱七八糟别的东西,放到一个目录下,势必显得架构很乱不清晰,如果分开几个目录,每个目录对应一个功能,这样看着也爽心悦目些。 G'Q-An%z  
PV'x+bN5  
2、便于维护:
O`x;,6Vr  
      如果今天只是想备份博客系统或明天只取一些论坛的数据下来。直接在根目录下再到对应的二级目录就好了,如果都挂在www域名 V@e?#iz  
下,势必要一层一层进入到对应的目录,操作显得不方便; v7BA[jQr  
9kN}c<o  
)t0$qd ]  
3、便于用户浏览: S;3R S;  
      如果用户只青睐于你网站的某一部分功能,比如wordpress,那么他就直接在浏览器中输入二级域名就好了,不用进入www主域在通过链接转来转去的。 J%v=yBC2  
      对于nginx来说,二级域名绑到服务器的方法,通常是修改default文件,多复制几个以server开始的大括号内容,然后修改里面的ip地址和名字;这样每次创建一个新的二级域名,就要复制一个;我最近在网上找到另一种通过正则表达式的方式,无需修改default这个配置文件,以后每次新增域名解析,直接在网站的根目录先,为二级域名新建立一个目录就好了。 J>wt (] y  
8=B|C'>  
下面详细说明一个这种方式的使用:
@5=oeOg36  
1、准备工作 y~ AVei&  
      通过ssh hostname进入你的服务器命令行;然后到/etc/nginx/sites-available目录下,输入sudo vim default打开修改我们的nginx配置文件,当然,修改前最好输入sudo cp default default-backup备份一下,以免我们改坏了,还可以恢复;当然,你也可以通过ftp把这个文件传下来,然后用windows上的文字编辑工具修改,最后在传回服务器; u]<,,  
`<`` 8  
:)wy.r;N  
2、初步修改 `5cKA;j>b  
      打开default文件后,在第一个server{后面的listen行后,加入如下语句: |oH,   
      set $mdir 'www'; l2zFKCGF(  
      #这句话是设置默认的配置为www域名; &zl|87M  
      if ( $host ~*  (\w  )\.\w  \.\w  ) { H*RC@O_hv  
        set $mdir $1; <k eVrCR  
        } :~b3^xhc^  
       这句话是核心,就是把进来的域名分析一下,然后把前面的名字取出来;关于正则表达式,我并不很精通,通俗的理解为对一个字符串做指定模式的匹配。如上面的if行,斜线是转义,w代表一个单词串,专业名也叫c tokens。*, 是常用的重复定义,其中*表示前面的字符重复0或大于0次,而 表示只能重复大于0次,也就是1次以上;这样通过if语句中的三个w 和两个小点,我们就可以把进到服务器的域名分成通常的三段了,然后用圆括号取出我们想要那一段,比如我们要取出第一段,就在第一段加圆括号,这样它就以$1这个变量的形式返回,比如域名是bbs.aliyun.com,那么这个$1变量就是bbs,再比如域名是cbk.relax.name,那么这个$1变量就是cbk。如果if条件满足,我们就把$mdir的值赋值为$1,也就是域名中的第一段字符; @| M|+k3  
.0S~872  
aktU$Wbwl  
3、后续修改: |%F=po>w  
       将我们最开始的root定义,改成$mdir变量 5,3'=mA6  
        root /var/www/$mdir; cv-PRH#  
       在这个括号中将www改为$mdir变量:    location ~ \.php$ { 1L%CJ+Q#0i  
.*@;@06?  
wKtl+}}  
        fastcgi_param SCRIPT_FILENAME /var/www/$mdir$fastcgi_script_name; C]O(T2l{l  
dsb`xw  
=)M/@T  
4、测试 !o5 W  
      存盘退出,输入service nginx restart,重启nginx使配置生效; ''q@>  
      然后到域名提供商增加一个域名试一下,比如cbk,那么在/var/www目录下建立一个cbk目录,放上一个index.html文件 oRm L {UDZ  
      <html> R@58*c:U(  
      hello,world, this is second domain test. [.O?Z=5a[V  
      </html> prC;L*~8  
]{)a,c NG  
L"E7#}  
      再在浏览器中输入cbk.abc.com,就可以看到二级域名下的信息了。 ;kFDMuuO  
      最后附上我的nginx文件和我的一个二级域名应用供大家参考。 aXQnZ+2e^R  
nginx配置文件 default.rar (2 K) 下载次数:638 nginx配置文件 iqC|G/  
qW$<U3u}  
http://cbk.relax.name/ 我用wordpress搭的一个博客 chcbd y>C  
?x$"+,  
Lz`E;k^  
8ZM?)# `@{  
[ 此帖被coderandroid在2013-08-11 23:44重新编辑 ]
本帖最近评分记录: 9 条评分 云币 +24
光山居士 云币 +1 阿里云服务器ECS 2折起_1块钱/天 https://iil.ink/quanmin293 04-12
vicy 云币 +1 - 2014-12-08
林林林林 云币 +1 优秀文章-欢迎进行技术分享,感谢你的支持! 2014-07-07
kideny 云币 +1 虽然看不懂,但是看上去很厉害的样子呢1。 2013-08-12
susan20120530 云币 +8 优秀文章-欢迎进行技术分享,感谢你的支持! 2013-08-12
bj88jc 云币 +1 好东西,这个要顶 2013-08-12
cn0555 云币 +5 优秀文章-欢迎进行技术分享,感谢你的支持! 2013-08-11
lilingdong 云币 +1 您的无私奉献精神值得我们学习!向您致敬! 2013-08-11
牛逼王 云币 +5 优秀文章-欢迎进行技术分享,感谢你的支持! 2013-08-11
级别: 科学怪人
发帖
9441
云币
14683
只看该作者 沙发  发表于: 2013-08-11
Re:菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域 ..
正则表达式 学习下
级别: 总版主
发帖
3267
云币
12044

只看该作者 板凳  发表于: 2013-08-11
Re:菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域 ..
支持一下
总版主元芳,社区论坛专家,以帮助和服务站长朋友为宗旨!
级别: 论坛版主
发帖
4952
云币
16507
只看该作者 地板  发表于: 2013-08-11
优秀文章-欢迎进行技术分享,感谢你的支持!
级别: 菜鸟
发帖
55
云币
68
只看该作者 4楼 发表于: 2013-08-11
Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
过来看一下,什么情况
级别: 技术砖家
发帖
2678
云币
8106
只看该作者 5楼 发表于: 2013-08-11
Re:菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域 ..
域名也就50元左右一年
级别: 布道狮
发帖
2015
云币
9452
只看该作者 6楼 发表于: 2013-08-12
Re:菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域 ..
还是装个面板 方便快捷
级别: 荣誉会员
发帖
1044
云币
1125
只看该作者 7楼 发表于: 2013-08-12
Re:菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域 ..
   虽不明但觉厉
级别: 技术砖家
发帖
803
云币
1988
只看该作者 8楼 发表于: 2013-08-12
好东西,这个要顶
级别: 科学怪人
发帖
9985
云币
21878

只看该作者 9楼 发表于: 2013-08-12
虽然看不懂,但是看上去很厉害的样子呢1。
级别: 技术砖家
发帖
1088
云币
3800
只看该作者 10楼 发表于: 2013-08-12
回 9楼(kideny) 的帖子
嗯,俺就觉得写技术贴太高调,以后还是走群众路线,低调点。
级别: 码农
发帖
140
云币
232
只看该作者 11楼 发表于: 2013-08-12
Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
菜鸟贴见到顶,顶完再看!!!
级别: 码农
发帖
108
云币
121
只看该作者 12楼 发表于: 2013-08-14
回楼主coderandroid的帖子
顶一个 cuMc*i$w!  
级别: 小白
发帖
9
云币
30
只看该作者 13楼 发表于: 2013-08-16
Re菜鸟新建网站第二步:正则表达式,让nginx服务器为你绑定多个二级域
楼主的方案早已过时 U(P:Je  
)ph30B  
详见http://wiki.nginx.org/Pitfalls#Using_If e$H|MdYIA  
*^ey]),f54  
http://wiki.nginx.org/IfIsEvil % kJh6J  
,}n=Z  
If is evil !!!! xSdN5RN  
-ywX5B  
我稍后发给最佳解决方案
级别: 技术砖家
发帖
1088
云币
3800
只看该作者 14楼 发表于: 2013-08-16
回 13楼(kiddo90) 的帖子
嗯,谢谢提醒,看了一下,主要是说我这方法用if的话,一个是效率低,一个是对一级域名解析不了。 N/(ofy  
不过我这种小站,还可以拉
发表主题 回复主题
« 返回列表
«12»
共2页
上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)