apisix 中的 DNS 解析

apisix 中的 DNS 解析

💡 原文中文,约3100字,阅读约需8分钟。
📝

内容提要

该文章讨论了在Apisix中处理路由和上游的过程。当有上游时,将使用上游,否则将使用路由。如果路由包含域名,则会解析该域名。文章还提到了一个问题,即当DNS服务器短时间不可用后恢复时,Apisix中的DNS解析仍然会持续失败,需要重启Apisix或执行reload命令来解决。修复方式是在解析域名的过程中添加判断。

🎯

关键要点

  • 文章讨论了在Apisix中处理路由和上游的过程。

  • 当有上游时,将使用上游,否则将使用路由。

  • 如果路由包含域名,则会解析该域名。

  • 提到的问题是当DNS服务器短时间不可用后恢复时,Apisix中的DNS解析仍然会持续失败。

  • 需要重启Apisix或执行reload命令来解决DNS解析失败的问题。

  • 修复方式是在解析域名的过程中添加判断。

  • 解析域名的过程涉及多个函数调用,包括handle_upstream和parse_domain_for_nodes。

  • 在parse_domain_for_nodes函数中,没有检测最终结果是否为空,可能导致解析失败。

  • 之前有一个issue提到DNS解析未能立即恢复,已被关闭但实际上可以复现。

  • 目前的修复方式是对parse_domain_for_nodes函数进行补丁修改。

延伸问答

在Apisix中如何处理路由和上游?

在Apisix中,如果有上游,则使用上游;如果没有,则使用路由。如果路由包含域名,则会解析该域名。

当DNS服务器短时间不可用后,Apisix中的DNS解析会发生什么?

当DNS服务器短时间不可用后,Apisix中的DNS解析会持续失败,直到重启Apisix或执行reload命令。

如何解决Apisix中的DNS解析失败问题?

解决DNS解析失败的问题需要重启Apisix或执行reload命令,此外可以在解析域名的过程中添加判断。

在解析域名的过程中涉及哪些函数调用?

解析域名的过程涉及多个函数调用,包括handle_upstream和parse_domain_for_nodes等。

为什么在parse_domain_for_nodes函数中可能导致解析失败?

在parse_domain_for_nodes函数中,没有检测最终结果是否为空,可能导致解析失败。

之前提到的DNS解析未能立即恢复的问题是什么?

之前提到的DNS解析未能立即恢复的问题是由于DNS服务器恢复后,Apisix中的DNS解析仍然失败,直到重启或reload。

🏷️

标签

➡️

继续阅读