请教一个域名问题,我在域名解析中设置了 a.xxx.com 和 b.xxx.com,两者 CNAME 指向其实都一样,分别绑定到两个 FC,后来我嫌麻烦,就在域名解析将 a 和 b 的 CNAME 都删了,只添加了 *.xxx.com 通配符。FC 中的域名绑定没改,但是过一会估计解析生效然而函数访问不了了。
我后来删除掉通配符 *.xxx.com,重新用 a.xxx.com 和 b.xxx.com,生效后又能成功访问函数了。 请问是否不允许域名设置通配符这么用?
支持 *.xxxx.com 这种通配符 https://help.aliyun.com/document_detail/90763.html?spm=a2c4g.52895.0.0.1e9d772fsRj9ck
此答案来自钉钉群“阿里函数计算官网客户"
1 在域名解析中使用通配符是可以的,但需要注意以下几点:
通配符只能用于解析子域名,不能用于根域名,例如 *.example.com 是合法的,但 *.com 是不合法的。
在使用通配符时,必须保证所有子域名都要正确解析到相应的IP地址或CNAME记录,否则可能会导致访问异常。
如果您在使用通配符时出现了问题,建议您检查 DNS 解析是否正确,以及是否存在 DNS 缓存等问题。
根据您的描述,您在解析中设置了 a.xxx.com 和 b.xxx.com,后来又使用通配符 *.xxx.com 进行解析,但访问函数时出现了问题。这可能是因为在您删除 a.xxx.com 和 b.xxx.com 的 CNAME 记录后,FC 中的域名绑定没有及时更新,导致访问出现问题。当您重新使用 a.xxx.com 和 b.xxx.com 进行解析后,FC 中的域名绑定也得到了更新,访问问题得到了解决。
因此,建议在进行域名解析时,仔细检查解析记录,并确保所有记录都正确指向相应的IP地址或CNAME记录,以确保访问正常。同时,也需要注意 DNS 解析缓存等因素对访问的影响。
在域名解析中设置通配符是允许的,但是需要注意以下几点:
在您的情况下,可能是因为在删除 a.xxx.com 和 b.xxx.com 的 CNAME 解析记录时,FC 中的域名绑定还在指向旧的解析记录,导致函数访问失败。建议在修改域名解析记录时,同时检查并修改后端服务的域名绑定,确保一致性。
在域名解析中设置通配符可以将所有子域名都指向同一个 IP 地址,但是需要注意的是,通配符只能匹配到一级子域名,不能匹配到多级子域名。例如,*.example.com 可以匹配到 a.example.com、b.example.com,但是无法匹配到 a.b.example.com。
在您的情况下,您将 a.xxx.com 和 b.xxx.com 的 CNAME 都删除,只添加了 *.xxx.com 通配符,那么所有子域名都会指向同一个 IP 地址,这可能会导致函数计算无法正确访问。因为函数计算的域名绑定是基于子域名的,如果所有子域名都指向同一个 地址,那么函数计算可能无法正确识别请求的子域名。
因此,建议您在域名解析中设置具体的子名,而不是使用通配符。如果您需要绑定多个子域名到同一个 IP 地址,可以使用相同的 CNAME 记录,而不是为每个子域名都设置一个 CNAME 记录。这样可以减少配置的复杂度,并确保函数计算能够正确识别请求的子域名。
需要注意的是, 解析可能存在缓存,如果您修改了 DNS 解析配置,可能需要等待一段时间才能生效。如果您遇到问题,可以尝试除 DNS 缓存或等待一段时间后再尝试访问。
从您提供的信息来看,您在使用域名解析时添加了一个通配符 *.xxx.com,并将该通配符应用于两个不同的域名 a.xxx.com 和 b.xxx.com。这种做法是不被允许的,因为通配符应该用于匹配整个域名,而不是特定的子域名。
当您删除了 a.xxx.com 和 b.xxx.com 的 CNAME 记录并将通配符应用于所有域名时,解析服务器会尝试将所有 xxx.com 域名解析为同一个 IP 地址。这可能会导致一些问题,例如无法正确访问特定函数,因为服务器无法区分不同的域名。
正确的做法是只使用 specific-name-servers 和 specific-ip-addresses 来解析域名,而不是使用通配符。如果您需要解析多个子域名,请使用多个 CNAME 记录,而不是使用通配符。
在 DNS 解析中添加通配符的方式可以使域名解析更加简单方便,但是需要注意以下几点:
通配符记录不能与其他记录重叠,否则可能会出现意料之外的结果。
通配符只能用于域名中的二级域名,不能用于顶级域名。
添加通配符后需要等待一定时间后DNS才会生效,这个时间因地区和ISP有所不同,一般要等待1-2小时左右。
在你的情况下,你添加了通配符后FC中的域名绑定没有改变,这导致你无法访问函数。这是因为你在添加通配符的同时删除了单独的 A 记录和 B 记录,通配符解析后将所有子域名都解析到同一地址,这样会出现一个问题,就是如果a和b两个子域名的记录没有完全一致,比如TTL不同、权重不一样等,那么就会导致因为解析到了不同的 IP 地址而出现问题。
因此,建议你针对a和b两个子域名单独添加A记录,这样可以保证每个子域名都被正确解析到相应的 IP 地址。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。