NGINX Ingress Controller在AWS EKS环境运行崩溃报signal 11错误求助
ingress-nginx在EKS+NLB场景下worker进程signal 11崩溃问题诱因分析
你采集到的报错[alert] 29#29: worker process 3106 exited on signal 11 (core dumped)本质是nginx worker进程触发了段错误,即进程访问了非法内存地址导致强制崩溃,在EKS搭配NLB、helm安装的场景下,常见诱因可分为以下几类:
版本兼容缺陷
- 若使用的ingress-nginx helm chart对应镜像版本低于v1.5.1,存在已知的PROXY协议报文解析内存越界漏洞,处理NLB发送的畸形报文时会直接触发段错误
- 老旧版本ingress-nginx对EKS 1.22及以上版本的K8s API适配不完善,服务发现逻辑的内存泄漏累积到阈值后,会触发非法内存访问
PROXY协议配置不匹配
- NLB开启PROXY协议但ingress-nginx侧未开启对应配置时,NLB发送的带PROXY协议头的报文会被当作正常HTTP报文解析,触发内存越界
- ingress-nginx开启PROXY协议但NLB未开启时,同样会出现报文解析异常,触发段错误
资源限制问题
- ingress-nginx Pod配置的内存限额过低,请求量突增时worker进程申请内存失败,访问空指针地址触发signal 11
- EKS工作节点本身内存不足,内核OOM机制清理进程时的非法内存操作可能触发进程段错误
自定义配置异常
- 若通过helm values注入了自定义nginx配置片段,配置内存在正则表达式未做边界限制、非法变量引用等问题时,worker进程处理对应规则会触发内存越界
- 自定义加载的modsecurity等第三方插件存在内存缺陷,处理恶意请求时会触发段错误
NLB健康检查兼容问题
- AWS NLB默认的健康检查报文在部分场景下和ingress-nginx内置健康检查端点的处理逻辑不兼容,连续的异常健康检查报文累积后会触发worker进程内存访问异常
内容的提问来源于stack exchange,提问作者Krunal Patel
相关产品推荐
相关产品推荐

