为什么 Envoy 要发送内部响应?

想了解 Envoy 为何会发送给定的内部响应,其中最简单的方法之一就是打开跟踪日志记录。 如果可以使用 “-l trace” 参数运行实例,那么速度就会有明显地降低,但却可以获得每个流和连接生命周期中各种事件的详细信息。 每当 Envoy 发送内部生成的响应时,它会记录到 “Sending local reply with details [unique reason]” 调试级别,该级别能提供有关发送本地响应的原因信息。 每个单独的响应信息都在代码库中的一个点上使用,无论是编解码器验证检测或者失败的路由匹配。

如果启用调试日志不合理,那么可以使用 _%RESPONSE_CODE_DETAILS%_ 将响应信息添加到访问日志中,这样就可以再次确定生成给定的响应的确切原因。 有关响应代码详细信息的文档可以在 这里 找到。