使用Kong Ingress Controller时如何查看请求中的header信息
解决方案
你可以通过自定义Kong的访问日志格式/调整日志级别实现请求Header查看需求,具体操作如下:
方案1:自定义访问日志输出Header(推荐,无冗余日志)
Kong的所有配置参数都支持通过KONG_前缀的环境变量注入,无需在values.yaml中提前预置对应配置项,你可以直接在helm的values.yaml中新增如下配置:
env: # 基础日志级别保持info即可,无需开启全量debug KONG_LOG_LEVEL: info # 自定义访问日志格式,可按需添加你需要查看的请求Header,Header名称统一转为小写、加http_前缀即可 KONG_NGINX_HTTP_LOG_FORMAT: >- req_header_log '$remote_addr - $remote_user [$time_local] "$request" ' 'status: $status req_time: $request_time ' 'X-Request-ID: "$http_x_request_id" ' 'User-Agent: "$http_user_agent" ' 'Authorization: "$http_authorization" ' # 如需要输出所有请求头可以加上下面这段 'All-Headers: "$http_headers"' # 绑定自定义日志格式到访问日志输出 KONG_NGINX_HTTP_ACCESS_LOG: /dev/stdout req_header_log
修改完成后执行helm升级命令生效配置:
helm upgrade <你的Kong实例Release名称> kong/kong -f <你的values.yaml路径>
配置生效后查看Kong Pod的标准输出日志,即可看到每个请求携带的Header信息。
方案2:开启全量DEBUG日志
如果需要查看更细粒度的运行日志,可以直接调整日志级别参数:
env: KONG_LOG_LEVEL: debug
注意:debug级别日志输出量极大,仅建议临时开启排查问题,排查完成后及时调整回info级别避免占用过多存储/IO资源。
补充说明
Kong官方Helm Chart没有将所有配置项都显式预置在values.yaml中,所有Kong原生支持的配置参数都可以通过env字段下的KONG_*格式环境变量注入生效。
内容的提问来源于stack exchange,提问作者codeaprendiz
相关产品推荐
相关产品推荐

