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

Kubernetes Ingress-Nginx长时API请求120秒504超时问题求助

长时运行API在Ingress-Nginx环境下120秒504超时问题求助

我有一个运行时长约4分钟的API,已部署在使用Ingress-Nginx的Kubernetes集群中。除该长时运行的API外,其余所有接口均正常工作,但它总是返回504 Gateway超时错误:
错误截图

已尝试相关解决方案但未奏效,现寻求帮助。

已调整的Ingress配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: {{  .Values.releaseName }}-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: 'true'
    nginx.ingress.kubernetes.io/affinity: cookie
    nginx.ingress.kubernetes.io/session-cookie-name: "route"
    nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
    nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
    nginx.ingress.kubernetes.io/server-snippet: "keepalive_timeout 3600s; grpc_read_timeout 3600s; grpc_send_timeout 3600s;client_body_timeout 3600s;"
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "3601"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "3601"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "3601"
    # nginx.org/proxy-connect-timeout: 3600s
    # nginx.org/proxy-read-timeout: 3600s
    # nginx.org/proxy-send-timeout: 3600s
    nginx.ingress.kubernetes.io/proxy-body-size: "100M"
    nginx.ingress.kubernetes.io/proxy-next-upstream: "error non_idempotent  http_502 http_503 http_504"
    nginx.ingress.kubernetes.io/retry-non-idempotent: "true"
    nginx.ingress.kubernetes.io/proxy-next-upstream-timeout: "5"
    nginx.ingress.kubernetes.io/proxy-next-upstream-tries: "1"
    # nginx.ingress.kubernetes.io/configuration-snippet: |-
    #   location  /HouseKeeping/Health/Healthz {
    #       deny all;
    #       return 403;
    #     }
    #   location  /InternalApi/ {
    #     deny all;
    #     return 403;
    #   }
    nginx.ingress.kubernetes.io/server-snippets: |
      http {
        client_max_body_size 100m;
      }
      location / {
        proxy_set_header Upgrade $http_upgrade;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Host  $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Port  $server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header Connection $http_connection;
        proxy_cache_bypass $http_upgrade;
        proxy-connect-timeout: 3602;
        proxy-read-timeout: 3602;
        proxy-send-timeout: 3602;
      }
      
spec:
  rules:
    - host: {{  .Values.apiDomain }}
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: {{  .Values.releaseName }}-web-clusterip-srv
                port:
                  number: 80

修改的Ingress-Nginx Controller ConfigMap

apiVersion: v1
data:
  allow-snippet-annotations: "true"
  proxy-connect-timeout: "300"
  proxy-read-timeout: "300"
  proxy-send-timeout: "300"
kind: ConfigMap

配置验证操作

执行以下命令导出Ingress-Nginx配置:

kubectl -n ingress-nginx exec ingress-nginx-controller-6cc65c646d-ljmrm cat /etc/nginx/nginx.conf | tee nginx.test-ingress-export.conf

导出的配置片段显示超时参数已生效:

# Custom headers to proxied server

 proxy_connect_timeout                   3601s;
 proxy_send_timeout                      3601s;
 proxy_read_timeout                      3601s;

尽管已做以上调整,该长时API仍会在120秒时返回504超时错误,请求帮助解决此问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:40:53