配置 Nginx 子域名的泛解析

简单记录:

需求描述

Web 服务器为 Nginx,希望配置泛子域名解析。 其实稍加修改,配置泛域名解析也不是难事。

  • 不影响主域名,domain.com 和 www.domain.com 的 root 依然为 www 目录
  • 子域名 sub.domain.com 的 root 希望放在 www-sub 目录下,其他子域名同理

解决及分析

在 Nginx 的配置文件中做如下配置(示意):

    server {
        server_name
            domain.com
            www.domain.com
            *.domain.com
        ;
 
        set $subdomain '';
        if ($host ~* (\b(?!www\b).+)\.domain.com) {
            set $subdomain -$1;
        }
 
        root    /home/user/www$subdomain/;
    }

解释:

首先,在定义 server_name 时使用通配符 * ,使 Nginx 接受任意子域名的访问。

然后,对 $host 进行分析,找到子域名的名称。 这个正则表达式是在网上抄的,目的是为了在匹配子域名的同时, 不匹配 www 开头的访问和不带 www 的访问。 前面的 set 是因为 Nginx 的 If 没有 Else,所以默认先将 $subdomain 置空。

最后,在定义 root 的时候,使用 $subdomain 变量。

GoDaddy的帐号自动锁定

昨晚发现godaddy突然无法登录了,我确定输入的用户名和密码都是正确的,可系统就是提示:

There is no account with that information. Please try again.

试了好多次都不行,也不是网络的问题,甚至我还通过重设密码功能修改了密码,仍然是登录不进去,只好给godaddy发邮件咨询,3个半小时后收到回信(部分内容):

 Thank you for contacting Online Support. Your account has been locked as a
 security measure due to multiple failed login attempts*. To have your
 account unlocked please respond to this email with the last 6 digits of the
 credit card used on your account for verification, or the shopper PIN for
 your account. Once we receive this information we will then submit a request
 to have your account unlocked.

 *If you have the "Card on File" feature enabled, your account will become
 locked after a single failed login. When using this feature you must either
 make sure that you are careful to enter the correct password every time you
 log into your account, or you will need to disable the "Card on File"
 feature.

大体内容是说,由于有失败的登录,所以帐号被暂时锁定了,需要写信要求他们解除锁定,并附上付款的信用卡号部分号码或者shopper PIN验证身份。并且如果开通了Card on File功能的话,只要有一次失败的登录,帐号就会被锁定,所以输入密码的时候一定要十分小心。

我回信提供了相关信息,大约2小时后就收到回信,帐号已经恢复正常,可以登录了。响应得还是比较及时的。

个人以为这是一种比较负责任的态度,godaddy帐号里面最值钱的就是域名,而如果被别人冒用帐号,把域名转移出去,大概就没希望要回来了,对上了规模的网站来说损失难以估量。所以如果有人“试”密码的话自动锁定帐号是对客户的负责任,要知道域名不像主机天天都会去看看是否运转正常,不作什么设置修改的话几个月甚至半年有的人也不会去登录godaddy(主机一旦出问题,网站立马挂掉,想不知道都难,域名被盗,别人可以暂时还保留原来的dns记录,外人感觉不到)。如果帐号被锁定后有个邮件通知那就更好了,可客服说没这服务。

如果害怕帐号时常被锁定的话,可以取消Card on File功能,因为开着这个一旦别人冒用你的帐号,偷走的就不仅仅是域名了,甚至信用卡里的票票都有危险。但我觉得为了方便还是开着吧,正常有一次错误登录就锁定,安全措施还显得更“灵敏”一些呢。

另外客服说的shopper PIN或者Support Pin,以及网站上显示的Call-in Pin其实都是一个东西,用于服务的那个4位数字码,别被不同的叫法弄糊涂了。

从万网转出域名成功

网上一直流传着“万网域名转出基本是无望地”的说法,恰好,我续费5年的域名今年就要到期了,恰好又是2000年在万网注册的,出于对这条传闻的浑身不舒服,以及godaddy合适的价格与服务,我决定要把域名转出来,不管有多难。下面是我的大体经历,不见得适合所有人,当然更不是哪方的枪文,只是希望有和我同样困惑的朋友能从中受益。

我的域名大概9月到期,由于域名到期前一个月不允许转移,所以很早就开始准备了,按照万网国际域名转出的要求,在4月底就把《万网国际域名转移注册机构申请表》和身份证复印件邮寄过去了,五一过后,收到了万网的拒绝email:

尊敬的客户您好:
   已经收到您的域名fwolf.com转出材料,但是您的域名所有人是Personal,我们无法确
认,请您提供您的护照,如果护照中的英文与您的域名所有人英文名称一致我们可以确认
,传真号码:010-84134247,请您在传真中注明您的域名和转出字样,以上给您带来的不
便,请您谅解。

若还有其他问题请及时与我们联系,谢谢!

在这里我不得不介绍一下这个Personal是怎么来的,不知道2000年左右在万网注册过域名的人谁还记得,当时注册的时候,有选项问是个人注册还是公司注册,我选的是个人注册,这个Personal就冒出来了。

不管怎样,我对需要我出示护照的要求感到十分不合理,就回了封email,但此后再没收到过任何解释,不得不说不回复email是万网一个非常不好的习惯。

后来,我又想寻求一些非官方的渠道,从网上搜到了一个万网员工的邮箱,给他发邮件请求帮忙,他也答应了,大概一周多以后也果然收到了万网一位客户经理的邮件,询问我域名转出过程中的问题。我满怀希望的回信了,没有回音。。。10天后再回信咨询,依然没有回音,唉,哪怕是拒绝的回信,也能让我感觉舒服一点啊。

再后来坐不住了,开始尝试一些“非正常”的渠道,直接在godaddy进行域名转入操作,刚开始域名的联系人居然是万网的邮箱。。。天,原来当时注册万网时,除了域名所有人是我的资料之外,其他的管理联系人、技术联系人都是万网的联系方式。。。变更。。。居然无法提交,原因是,“公司”不能为空。不知道有没有其他人遇到过此类问题,这不是linux或者firefox的问题,我换过平台操作还是一样。我又不能通过过户来修改那个不能为空的“公司”,不仅是费用的问题,还牵涉到域名可转移期限、过户手续繁琐的问题。不过幸好发现万网网站的一个小漏洞,轻松绕过此问题,修改了所有域名中的联系方式,统统改为我自己的。

再次在godaddy提交域名转入申请,成功收到了Transaction IDSecurity Code,继续操作,提示需要Authorization Code,天,我上哪儿去找这个Authorization Code,帮助上说是原注册商提供的,可我翻遍了万网控制面板也找不到。

一顿摸瞎中,我发现万网有一个域名DIY自助管理,是用域名和密码登录的,无独有偶,域名管理中有一项 “域名密码修改”,会不会是这个密码呢?尝试设置了一个,域名DIY自助管理倒是能进去了,可作为Authorization Code用的时候,程序操作是通过了,但很快被万网枪毙了:

The transfer request for the following domain name(s) has been denied by the losing registrar:

看来行不通。无奈,眼看着域名到期日的临近,实在坐不住了,开始打电话向万网咨询。

刚开始还是老一套,Personal的问题,经过几次电话联系,反复的解释Personal的来历,这次万网不要护照了,但要求我提供户口所在地证明,证明我就是那个Personal,可笑,哪个派出所能开出这样的证明呢?除非万网给我一份要求提供如此证明的函。。。其实万网工作人员也并非不讲理,大概也是想为客户负责吧,不愿让域名被不知名的人给转走了。细心耐心的交涉终于有成果了,万网的工作人员被我说服,要求我用域名注册人的邮箱向某个万网官方邮件发封邮件,里面注明域名转出事宜,并附上身份证扫描件,就可以给我办理转出了。

接下来就顺利多了,邮件发出二十分钟后就收到了Authorization Code,让我大跌眼镜的是,居然和我设置的域名DIY自助管理密码相同!不同的是输入godaddy之后没有被枪毙,开始了长达6天的等待,然后,今天,收到了域名转移成功的邮件。

总结下来,除了电话里纠缠的那个Personal问题之外,只是邮寄一点资料,等待的时间稍微长一些,但是没有收取任何费用,虽然不像买冰棍儿那么简单,倒还说得过去,至少我的体验不像网上传言的那样“基本是无望地”,或许是万网改进了客户服务质量吧,我希望是这样。不过话这么说,也得益于网上看到的这篇文章,有话好好说,先礼再后兵,和平解决问题为最优。

再提醒一下各位观众,域名注册商选择一定要慎重,要看服务质量,而不是价格,至于到底是在国内注还是在国外注,视具体情况而定吧,万一碰到一个外国流氓可能更麻烦一些呢,一定要选择口碑最最最好的。

Update @ 2007-06-17

cnBeta把我这篇文章转贴了,没想到留言的朋友中有不少对我的文章有误解,或者说我没有写清楚,在这里再补充一些吧,不过我最烦没完没了的口水战。

  • “万网域名转出基本是无望地”的说法,网上确实流传着一个版本,参考, , , ,至于准确性和真实性大家就见仁见智吧。
  • 也许我没有提供足够的资料,也许我的信息填写的不正确,也许我根本就没掌握操作要领,anyway,上面已经写的我也不重复,没写的我基本上也都忘记了。
  • 万网的那个漏洞不是什么大问题,不影响数据安全,这个问题只有和我经历类似的、实际遇到过的才能体会到。
  • 和万网服务人员email以及电话沟通的过程中,他们始终很客气。
  • 我仍然有域名留在万网,并且不会转出。
  • 谣言止于智者,事实胜于雄辩。
  • 我会删除使用不文明用语的留言。

Update @ 2008-10-08 参考一些别人的转出域名经验吧