You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EKS中Nginx Ingress畸形请求的排查与解决建议

排查EKS中Nginx Ingress频繁出现的\x00格式错误请求

一、排查请求来源

  • 定位集群内源Pod:日志中的10.0.7.208、10.0.8.6是集群内部Pod的IP,执行以下命令找到对应Pod:
    kubectl get pods -o wide --all-namespaces | grep 10.0.7.208
    
    通过返回结果查看Pod所属命名空间、名称及关联的应用资源(Deployment/StatefulSet)。
  • 检查应用行为:找到可疑Pod后,查看其应用日志,确认是否存在错误的请求逻辑(比如误发送空HTTP请求);同时检查该应用的健康检查配置,是否存在路径或请求格式错误。
  • 抓包分析请求细节:在Nginx Ingress控制器Pod内执行抓包命令,捕获源IP的请求内容:
    tcpdump -i any host 10.0.7.208 and port 80 -w empty-requests.pcap
    
    导出抓包文件后用Wireshark分析,确认请求的完整结构,判断是恶意请求还是应用bug。
  • 验证负载均衡流量:如果怀疑是外部流量穿透到集群内部,检查AWS ALB/NLB的访问日志,确认是否有对应请求记录;若日志仅存在集群内IP,可排除外部来源。

二、问题解决建议

  • 修复应用请求逻辑:若排查确认是某应用的代码bug导致发送空请求,修复代码确保生成符合HTTP规范的请求。
  • 修正健康检查配置:如果是应用健康检查配置错误(比如配置了空请求路径),调整健康检查的请求方法和路径,使用合法的GET/HEAD请求。
  • 在Ingress中拦截无效请求:通过Nginx Ingress的自定义配置拦截空请求,在Ingress资源中添加server-snippet注解:
    annotations:
      nginx.ingress.kubernetes.io/server-snippet: |
        if ($request = "\x00") {
            return 444;
        }
    
    该配置会直接断开空请求的连接,避免日志被无效请求填充。
  • 限制源IP访问:对于非必要的内部服务,在Ingress中配置IP白名单,仅允许合法的Pod IP或服务网段访问:
    annotations:
      nginx.ingress.kubernetes.io/whitelist-source-range: "10.0.1.0/24,10.0.2.0/24"
    
  • 升级Nginx Ingress版本:如果使用的是较旧版本的Nginx Ingress Helm Chart,升级到最新稳定版,部分旧版本可能存在对空请求处理的兼容性问题。

内容的提问来源于stack exchange,提问作者Ahmed Ihab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 05:50:58