在国内是无法为用户提供自定义域名服务的,因为国内有两大限制,第一:要绑定的自定义域名必须要备案;第二:域名备案的服务商必须要和服务器的提供商一致,否则必须办理域名备案转入。
更新: 用户们可以理解需要备案这一要求,但是用户备案的服务商是和我们服务器提供商是不一致的,这种情况下,服务器提供商会把这些域名的访问请求直接断掉,没有商量余地。
这两大限制,阻止了 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 即可,这样就可以绕过了。
我觉得你刚才的思路应该可以 ,
CNAME
到国内的域名上 , 服务器判断域名即可理论上应该可行 .
#13 楼 @huacnlee 应该只是多了一层的解析,之后的流程应该是一样的吧~
#14 楼 @iamroody 绑定 CNAME
是在国外的域名上做的 , 没法限制吧
我做了一个 CNAME
http://ruby-china.lsong.org , 速度上感觉不到 .
只要 宫刑部
不限制服务器上的配置 , 就应该可以实现 .
刚看了一下点点的自定义域名: a) 在域名服务网站上将域名添加 cname 记录指向 192468.c.dianapp.com。建议将带 www 域名(www.example.com)和不带 www 的域名(example.com) 都做好指向。(一般需要 1 至 24 小时)
192468.c.dianapp.com 这个域名是日本的 IP,猜测有可能是 linode,而点点的主站 ip 地址其实是“河北省唐山市 百吉数据唐山机房”。
我在想是不是点点就是在国外做了一个这样的 server 来处理绑定域名的这些事?
@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 这方面就容易多了。不要把自己陷进去了。