部署 国内服务器如何为用户提供绑定顶级域名服务?

iamroody · November 04, 2013 · Last by iamroody replied at January 02, 2014 · 9511 hits
Topic has been selected as the excellent topic by the admin.

在国内是无法为用户提供自定义域名服务的,因为国内有两大限制,第一:要绑定的自定义域名必须要备案;第二:域名备案的服务商必须要和服务器的提供商一致,否则必须办理域名备案转入。

更新: 用户们可以理解需要备案这一要求,但是用户备案的服务商是和我们服务器提供商是不一致的,这种情况下,服务器提供商会把这些域名的访问请求直接断掉,没有商量余地。

这两大限制,阻止了 90% 的用户。。。

最终解决方案:

在海外的一台主机上,加了一个 nginx 做反向代理,将所有请求 pass 到国内的 server 上,nginx 配置如下:

server {
        listen 80;
        server_name proxy.域名.com; #该域名是备案过的
        location / {
                 proxy_pass http://域名.com;
                 proxy_set_header referer $server_name; #防止被检测出来,将referer设置成该cname
                 proxy_set_header X-Origin $host;  #将原始的域名写在这里,给未来系统中使用
                 proxy_set_header X-Real-IP $remote_addr; #同时将原始的访问请求的IP地址记录在这里
         }
  }

让用户将自己的域名 cname 到 proxy.域名.com 即可,这样就可以绕过了。

好像是这么回事额

用 github 的目录式 URL 就行了,其实在乎域名的人也不是那么多。

#2 楼 @Rei 商业 SAAS 服务,我们的用户是为他们的客户服务的,所以对这些比较在意。

#3 楼 @iamroody 这个没办法了,要连备案在内当作服务的一部分。

可以让用户自行备案,绑定的时候验证域名备案信息就对了

#1 楼 @huacnlee @Rei 如果我们自己注册一个域名 B,然后备案到我们服务器提供商这里,把这个域名放置到国外的某台机器上。然后让用户的域名 cname 到域名 B,然后域名 B 再定向到我们国内的服务器和域名 A 上面。

不知道这样的一个逻辑,是否就可以让用户不需要再备案了?

#5 楼 @huacnlee “绑定的时候验证域名备案信息就对了”这个是什么意思?

#7 楼 @iamroody 让用户自己备案 , 宫刑部 来查就提供用户的备案号 .

#8 楼 @song940 用户自己已经备案,但是备案的服务商和我们服务器不是一家,这种情况下,也会被断掉。

#9 楼 @iamroody Ruby China 这个域名备案是自行备案的,和主机上没关系

#10 楼 @huacnlee

我电话咨询 ucloud 了,自行备案之后需要办理一个备案转入,提供一些材料,并且一台服务器最多绑定 5 个域名,否则就有被拦截掉的风险,这是通管局规定的。

我觉得你刚才的思路应该可以 ,

  1. 准备一个国内的域名 , 走备案流程 , 服务器在国内 .
  2. 准备一个国外的域名 , 不用备案 , 给用户做自定义域名绑定
  3. CNAME 到国内的域名上 , 服务器判断域名即可

理论上应该可行 .

  1. 准备一个国外的域名 , 不用备案 , 给用户做自定义域名绑定

这也是需要备案的,因为不备案无法 CNAME 到国内的域名上。

#13 楼 @huacnlee 应该只是多了一层的解析,之后的流程应该是一样的吧~ #14 楼 @iamroody 绑定 CNAME 是在国外的域名上做的 , 没法限制吧

我做了一个 CNAME http://ruby-china.lsong.org , 速度上感觉不到 .

只要 宫刑部 不限制服务器上的配置 , 就应该可以实现 .

#14 楼 @iamroody 绑定 CNAME 是在国外的域名上做的 , 没法限制吧

实在国外域名上做,但是接入的到这台服务器的时候,服务商会检测。如果这一步可以绕过的话,那么所有人都可以注册域名 CName 到服务器上了。

#16 楼 @iamroody .......


服务器和域名全部搬到国外吧 .. , 国内弄个服务器做静态资源的 CDN .

#12 楼 @song940 放心吧,不行的。不管什么域名解析到提供商,如果提供商没有这个域名的信息,自动 ban 掉。

国内真是有钱啊,每个网站都备案审核,这得多少人力啊,都是纳税人的钱啊

宁可错杀三千,也不愿意想个更好的办法。网络环境太恶劣了,百度和几大门户那些下三滥的头条可以随便放,留言可以随便喷排泄物,但个人有个好想法的话,从域名到主机面临的都是壁垒,能办下来也可以,问题是有 BBS 互动发言可能性的就要以公司身份,多少万注册资本,有身份证和地址还不行。

真不知道这些吃皇粮的脑子想些什么,也许上头的想法是可以追查到责任人就行了,他们可能觉得再加个框更保险。

点点网怎么可以?

#19 楼 @blackanger 替用户备案了吧~

#20 楼 @song940 每个用户都提供备案吗。。。

#19 楼 @blackanger

刚看了一下点点的自定义域名: a) 在域名服务网站上将域名添加 cname 记录指向 192468.c.dianapp.com。建议将带 www 域名(www.example.com)和不带 www 的域名(example.com) 都做好指向。(一般需要 1 至 24 小时)

192468.c.dianapp.com 这个域名是日本的 IP,猜测有可能是 linode,而点点的主站 ip 地址其实是“河北省唐山市 百吉数据唐山机房”。

我在想是不是点点就是在国外做了一个这样的 server 来处理绑定域名的这些事?

另外,尝试绑定域名的后面几步,竟然需要填入姓名,身份证和电话号码。

所以,点点这边还是额外进行了一些审批的工作。

25 Floor has deleted

求可行性方案总结贴。

买的 DigitalOcean 用 nginx 做的反向代理,直接把域名映射到主机 ip 的某个端口上

#26 楼 @qinghe 暂时还没有可行性方案

@assyer 不知道我的理解对不对,你的意思: www.example.com -(cname)-> 192468.c.dianapp.com (日本), 192468.c.dianapp.com 请求主站 192468.diandian.com(唐山) 取得结果 返回给 www.example.com?

国内真麻烦,今天还收到了备案电话信息校验。

ISP 基本都会有这种限制,每个 VPS 绑定有限度的域名还是可以的。

我觉得楼主不要一开始弄的那么复杂,可以国内国外两个服务器,规模不大的客户放在国外,没有备案的问题。规模足够大的客户放在国内。一个 VPS 支持 5 个没问题,而且一年也就 1000 的费用。

前置的 VPS 也可以单纯的作为 PROXY,业务逻辑放在后端。

做到够大了,自己做机房 ISP 这方面就容易多了。不要把自己陷进去了。

@qinghe 解决方案更新了,目前测试一切正常。

好像没有什么好的办法,不过某些国内云主机号称可以不用备案。。

备案信息是每个网站都不一样的,这个 proxy.域名.com 不能通吃所有备案类型吧?

#35 楼 @linus 只是举例而已,但是这种情况现在不管用了,我们尝试这样的配置,还是被阿里云发现并 block 连接了。

chrisloong in 域名免备案的解决方法 mention this topic. 26 Jul 01:18
You need to Sign in before reply, if you don't have an account, please Sign up first.