在 6 月 26 日,我们发出过域名绑定的通知,按照主管部门的要求,也为了避免 LeanCloud 共享域名可能存在的潜在风险,请开发者尽快为国内节点的应用绑定 API、文件和云引擎的自定义域名。8 月 5 日我们再次发出进度通知,确定 在 10 月 1 日之后将不再为未绑定自定义域名的应用提供服务。
对于绑定自定义域名一事,有些开发者还存有一些疑问,这里我们在做一个详细说明。此次域名主要涉及到三大类的服务:
消息推送和短信服务并不强制要求应用绑定自有域名,但是也推荐大家这么做(为了防止 LeanCloud 共享域名不可用)。今后,我们也不对 LeanCloud 共享域名的可用性提供服务保证,具体可以看我们用户协议的第 3.8 条。
所有用于绑定的域名,首先要求开发者对其拥有所有权,且在工信部备过案,才可以正常使用。对于文件服务使用的域名,并不要求在 LeanCloud 备案或者接入;但是对于 API 和云引擎使用的域名,则要求必须在 LeanCloud 备案或者接入备案。
每一个域名只能绑定到一个应用的特定服务上,不同服务之间、不同应用之间域名不可重复,因此建议开发者使用同一主域名下的不同子域名。另外,为了避免影响同一域名下的其他子域名的解析,文件域名和 API 域名不支持直接绑定「裸域名」(例如 example.com),只有云引擎网站托管才支持绑定裸域名。
有关域名的知识,大家可以参考我们的两篇博客:
域名绑定的操作流程,可以参考我们的开发文档:
接下来我们收集了近期开发者反馈较多的问题,以问答的形式展现出来,希望能给大家带来一定的参考意义。
如果是商用版应用,我们免费提供备案或者接入服务,开发者自行在控制台的 「账号设置」 - 「域名备案」 下提交资料就可以。
如果是开发版应用,8 月份发出通知的时候,我们是有偿协助进行备案的(需要邮件联系,线下付费)。但是近期备案用户增多,由于我们运营人员有限,所以从 9 月 5 号开始停止了对开发版应用进行备案或者接入的支持。对于这部分开发者,建议大家考虑其他方式来继续使用我们的服务,如:
转入 LeanCloud 的国际版(无域名绑定要求,也无需备案);
到 IaaS 服务商处自行完成备案和接入。我们华北节点是和 UCloud 合作,华东节点是和腾讯云合作,大家可以按照应用的节点选择合适的 IaaS 服务商去备案;
升级为商用版;
我们希望大家尽快绑定自有域名,但是考虑到产品测试、集成的环节和周期,我们统一给每个应用提供了 3 个月共享域名的可用窗口期。也就是说,新的应用创建之后,不论是开发版还是商用版,在 3 个月内都可以使用 LeanCloud 提供的共享域名进行访问;3 个月之后,如果还没有绑定自有域名,则部分服务(如数据存储、云引擎)将会立即中止。
之所以设置 3 个月的窗口期,主要是为了不影响开发者的实际业务,给一个充裕的时间段来完成访问域名的切换,同时也可以适当控制共享域名被滥用的风险。
「10 月 1 日」这个时间点,也是按照初次通知的时间(6 月 26 日)+ 3 个月的窗口期计算得来的。如果您 9 月份创建一个新的应用,那么绑定自有域名的截止时间会是 12 月。
对于绑定了自有域名的应用,其老版本的客户端由于不能及时升级的原因,还会继续使用 LeanCloud 原来提供的共享域名,这些请求我们在今后一段比较长的时间里都会一直支持,确保您的业务不受影响。当然前提条件是您已经绑定好了自有域名。
也就是说绑定自有域名之后,您新版本的客户端通过新的自有域名访问,老版本的客户端通过老的共享域名来访问 LeanCloud 服务,这是同时支持的。对于没有绑定自有域名的应用,我们则会及时停止其访问,这也是对已经绑定域名的用户的一种保护。
首先说明一点,对于 REST API 的访问域名,必须支持 https。对于云引擎网站托管域名和文件访问域名,https 是可选项。我们对于 SSL 证书的处理,不同的服务有不同的方式:
选择哪种方式,开发者可以自行决定。
从 8 月份开始,我们要求不同应用之间使用不同的子域名来访问。但是在 620 域名故障期间,我们临时帮助一些重要用户绑定了自有域名,这些自有域名普遍存在多个应用之间被共享的情况,这种「例外」会作为既有事实存在下去,我们也会继续进行支持,但是新的应用则需要绑定到不同的域名上。
对于文件服务的自定义域名,并不需要开发者在客户端进行额外操作,所有访问都会自动切换到新域名。 对于云引擎网站托管的自定义域名,开发者需要在访问他们的地方进行切换,例如浏览器地址栏,或者网页外链的跳转链接,这些改动都比较直接和简单。 对于 API 的访问域名,开发者需要在客户端程序里面进行专门设置,具体方法可以参考我们的开发文档:SDK 安装指南。
域名绑定只是为了防范 LeanCloud 共享域名可能存在的潜在风险,保证客户业务长期稳定运行的预防措施,绑定完成之后访问入口就长期有效(除非开发者解除绑定,域名或SSL 证书失效),不受开发版、商用版切换影响。 所以如果有应用绑定完域名之后切换到开发版,那自有域名的访问是可以长期有效的。
应用转让之后,如果原域名所有者不删除 DNS 解析记录,那么所有的请求还是会打到 LeanCloud 后端集群上来,这些请求都会被正常处理。如果原域名所有者删除了 DNS 解析记录,而新的开发者又不绑定到新的域名,那么理论上使用原域名访问的流量是根本不会到达 LeanCloud 集群的,这时候被转让的应用基本上就处于不可用状态了。
对于 API 自有域名,如果新的应用所有者需要更换它,可以采取先新增绑定、后删除老域名的方式来操作。LeanCloud 是支持为同一个应用的同一种服务绑定多个访问域名的情况的,这样应用转让之后就可以平滑过渡到新域名。
对于文件访问域名,目前我们只支持一个应用绑定一个文件域名,开发者修改域名之后,所有通过 AVFile 实例获得的访问 url 会立刻得到更新,所以不存在新老域名过渡的问题。而如果开发者把文件 url 单独保存在了别的地方,则需要自己来维护域名更换的事情了。同样的原因,如果即时通讯里的多媒体消息是通过 AVFile 形式保存到 LeanCloud 云端的,在实际消息中保存的就是文件的 url,这会导致更换文件域名之后即时通讯历史消息中的文件类消息(图片,音视频等)变得不可访问(注意:第一次绑定域名之后,LeanCloud 原来提供的共享文件域名是依然可用的;开发者更改自定义域名之后,会导致前一次绑定的自有域名变为不可用)。我们之后会通过让文件服务也支持绑定多个域名来解决这一问题。
使用云函数(包含 hook 函数)的应用,需要绑定 API 域名。
在云引擎托管网站,则需要绑定云引擎域名。
如果您实在不确定的话,可以两个都绑一下(需要绑定不同的域名,可以是同一域名的不同子域名,例如 api.example.com
和 web.example.com
),这样就万无一失了。