12、Ingress-Nginx 全局超时配置及生效方式

Ingress-Nginx 全局超时配置及生效方式

Ingress-Nginx 全局超时完整配置(可直接落地)

一、全局 ConfigMap 配置(所有Ingress生效)

YAML 复制代码
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-ingress-controller
  namespace: ingress-nginx
data:
  # 与后端Pod建立TCP连接超时
  proxy-connect-timeout: "10"
  # 读取后端响应间隔超时
  proxy-read-timeout: "180"
  # 向后端发送请求间隔超时
  proxy-send-timeout: "180"
  # 读取客户端请求头超时
  client-header-timeout: "60"
  # 读取客户端请求体超时
  client-body-timeout: "60"
  # 后端重试总超时
  proxy-next-upstream-timeout: "10"
  # 后端最大重试次数
  proxy-next-upstream-tries: "3"
  # 保持连接超时
  keep-alive-timeout: "60"

二、单条 Ingress 注解配置(仅当前规则生效,优先级高于全局)

YAML 复制代码
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app-ingress
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "10"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "180"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "180"
    nginx.ingress.kubernetes.io/client-header-timeout: "60"
    nginx.ingress.kubernetes.io/client-body-timeout: "60"
    nginx.ingress.kubernetes.io/proxy-next-upstream-timeout: "10"
    nginx.ingress.kubernetes.io/proxy-next-upstream-tries: "3"
spec:
  rules:
  - host: app.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: app-svc
            port:
              number: 80

三、关键参数极简说明

参数 作用 建议值
proxy-connect-timeout 连接后端TCP握手超时 10s
proxy-read-timeout 后端长时间无响应间隔超时 180s(接口/报表长请求用)
proxy-send-timeout 向后端传数据间隔超时 180s
keep-alive-timeout 客户端长连接保持时间 60s

四、生效方式

  1. 应用 ConfigMap:kubectl apply -f nginx-ingress-configmap.yaml

  2. 无需重启Ingress控制器,配置自动热加载

  3. 单应用特殊超时直接加 Ingress annotation 即可覆盖全局

相关推荐
乘云数字DATABUFF10 小时前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Patrick_Wilson1 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
阿里云云原生1 天前
AI 开发新常态:当 Cursor、Claude、Codex 并行,如何统一管理散落的 Skill 资产?
云原生·ai编程
探索云原生1 天前
K8s 1.36 这个 GA 特性,把 initContainer 拉模型的 hack 干掉了
ai·云原生·kubernetes
Java之美1 天前
从edge-trigger到level-trigger,谈谈 Kubernetes controller 的开发范式
云原生
阿里云云原生2 天前
深度解构:当 Append-only 的 SLS 遇上 Update/Delete,是如何实现设计权衡的?
云原生
荣--2 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森2 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Java之美2 天前
一次k8s升级引发的DevicePlugin注册失败
云原生·kubernetes