增加 proxy_send_timeout 和 proxy_read_timeout ingress nginx

2024-01-18

我在 GKE 上运行部署,

using quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.12.0图像作为 nginx-ingress-controller

我正在努力增加proxy_send_timeout and proxy_read_timeout继此link https://github.com/kubernetes/ingress-nginx/blob/nginx-0.12.0/docs/user-guide/annotations.md

这是我的入口配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress
  namespace: production
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "360s"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "360s"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "360s"
    nginx.ingress.kubernetes.io/proxy-body-size: 100m
    nginx.ingress.kubernetes.io/client-body-buffer-size: 100m
spec:
  rules:
  - host: app.my.com
    http:
      paths:
      - backend:
          serviceName: front-app
          servicePort: 80
  - host: api.my.com
    http:
      paths:
      - backend:
          serviceName: backend-app
          servicePort: 80
  - host: api.old.com
    http:
      paths:
      - backend:
          serviceName: backend-app
          servicePort: 80
  tls:
  - hosts:
    - app.my.com
    - api.my.com
    secretName: tls-secret-my-com
  - hosts:
    - api.old.com
    secretName: tls-secret-old-com

这仍然没有改变proxy_send_timeout and proxy_read_timeout

超过 60 秒(默认 nginx 超时)的请求将被关闭

我看到这个日志:

[error] 20967#20967: * upstream prematurely closed connection while reading response header from upstream, client: 123.456.789.12, server: api.my.com, request: "GET /v1/example HTTP/2.0", upstream: "http://11.22.3.44:4000/v3/example", host: "api.my.com", referrer: "https://app.my.com/"

当我进入 nginx pod 时:

> kubectl exec -it nginx-ingress-controller-xxxx-yyyy -n ingress-nginx -- bash
> cat /etc/nginx/nginx.conf

output:

server {
    server_name _ ;

    listen 80 default_server  backlog=511;
    location / {
        # Custom headers to proxied server

        proxy_connect_timeout                   5s;
        proxy_send_timeout                      60s;
        proxy_read_timeout                      60s;

proxy_send_timeout and proxy_read_timeout被设置为60s并不是360s正如我在入口处配置的那样

所以我尝试手动更改超时nginxconf,然后我没有在客户端上得到超时,但是每次重新启动nginx时,这些值都会返回到默认值60s

如何正确配置入口超时?


基于 :https://github.com/kubernetes/ingress-nginx/issues/2007#issuecomment-374856607 https://github.com/kubernetes/ingress-nginx/issues/2007#issuecomment-374856607

I had the same problem and discovered that the following do not work:

nginx.ingress.kubernetes.io/proxy‑read‑timeout: 1800
nginx.ingress.kubernetes.io/proxy‑read‑timeout: 1800s
nginx.ingress.kubernetes.io/proxy‑read‑timeout: "1800s"

What does work is:

nginx.ingress.kubernetes.io/proxy‑read‑timeout: "1800"

尝试将注释中的值更改为“360”。该值必须是一个数字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

增加 proxy_send_timeout 和 proxy_read_timeout ingress nginx 的相关文章

随机推荐

  • 哪个 paypal api 可以获取所有交易

    对大量 paypal API 感到非常困惑 我想知道我是否可以以某种方式获取交易 输入和输出 就像我通过网络界面导出到 csv 一样 我在这里 REST API https github com paypal PayPal Ruby SDK
  • 加载sequelize中关系为空的项目

    我是续集的新手 我正在尝试加载用户表中任务关系为空的所有条目 但它不起作用 这是我尝试过的 const express require express const app express const Sequelize require se
  • 从mysql的大表中快速选择随机行

    从大型 mysql 表中选择随机行的快速方法是什么 我正在使用 php 工作 但我对任何解决方案都感兴趣 即使它是另一种语言 获取所有 id 从中随机选择一个 然后检索整行 如果您知道 id 是连续的且没有漏洞 则可以获取最大值并计算随机
  • 如何阻止 Spring 吞咽异常?

    当服务器端出现故障时 因为数据库和应用程序不同步 而不是出现错误 并且应用程序崩溃 spring tomcat 似乎会吞下异常并假装什么也没发生 你可以说我疯了 但如果程序灾难性地失败 我希望它实际上灾难性地失败 有什么办法可以关闭这种行为
  • Pygame.MOUSEBUTTONDOWN 坐标关闭,除非我在 xwindows 中

    如果我从控制台加载 pygame 代码 它会错误地读取触摸屏坐标 但如果我启动到 xwindows 它会正确读取它们 我已经进入并校准了触摸屏 如果我从控制台运行 evtest 我将得到正确的坐标 只有在 python 中 它才会返回错误的
  • 监听EventDispatcher的所有事件类型

    在Flex中 是否可以监听一个对象的所有事件类型IEventDispatcher addEventListener的第一个参数是类型 它是一个字符串 在许多情况下 文档并不清楚它触发的事件类型 我想附加一个通用侦听器来检查事件 我认为你必须
  • 我可以在 ANDROID 中将 mp3 文件转换为文本吗?

    Android 是否支持以下功能 将包含语音的 mp3 文件转换为适当的单词 然后将结果写入 TextView 或 Toast 或其他任何内容 我不是在谈论使用语音识别器 我的意思是 mp3 中的文件必须从 SD 中选取 未实时记录和分析
  • 谷歌地图v3更改信息窗口的大小

    我想设置信息窗口的大小以适合其中的内容 标准信息窗口太宽我尝试使用 maxWidth 但它似乎不起作用 调整信息窗口大小的最佳方法是什么 参见代码 window setContent inspStates i name br total i
  • 如何在Javascript中为小数添加小数点

    我尝试将 0 10 添加到 23 50 但得到 23 50 10 而不是 23 60 my code console log parseFloat 23 50 parseFloat Math random 0 10 0 01 toFixed
  • Nativebase - 单击输入时如何显示日期选择器?

    我在用本地库成分 我有Form具有以下字段
  • 在 onTouch (Android) 上获取颜色(像素)信息

    有没有办法获取像素 x y 的颜色并检查其是否为红色 如果是红色则发送触摸事件 我希望它在后台运行 并且它应该始终检查该像素 x y 的颜色 一旦它变成红色 就应该模拟触摸事件 您可以从以下示例中获取值 final Bitmap bitma
  • 在 BigQuery 中附加时忽略重复记录

    我们正在将数据从 MySql 写入 BigQuery 我们设定了一些指标 例如 插入 如果是第一次添加记录 则在指示符字段中用 I 保存 更新 如果记录有一些更新的数据 则在 指示符 字段中将其保存为 U 如果未更改则忽略重复记录 但在 更
  • Winnovative - CSS 网格未正确转换

    我正在使用 Winnovative 库将一些 HTML 转换为 PDF 由于这对于很多场景都很有效 但 CSS 网格似乎存在问题 由于我无法分享太多规格 但我可以分享这些显示 HTML 部分和 PDF 中转换结果的图像 HTML eleme
  • 在 WCF 中,我的 UriTemplate 的文字段中可以有通配符吗?

    我正在使用 Net 4 0 编写 RESTful WCF 服务 我想要以下两个网址 root document ids fields fields root externaldocument ids fields fields 映射到相同的
  • applicationContext.xml 中的 beans 声明

    我有一个关于类声明的问题应用程序上下文 xml In 应用程序上下文 xml我们需要指定应用程序中的所有类吗 例如 在我的小型网络应用程序中 我有一个Entity class Service类和DAO班级 所以目前它被定义为
  • 找出 Google Cloud SDK 的安装位置

    我需要在以下位置添加 Google Cloud SDKPATH 所以我需要安装位置的路径 有没有gcloud 哪个命令给我这个信息 如果不是 我必须通过符号链接which gcloud etc 对于这个问题有更清洁的解决方案吗 以下命令将为
  • 有没有办法在html中自动播放音频?

    我想在打开网站时立即在网站中自动播放音频 但这不起作用
  • Python:排序的文件列表

    我使用 os path 从目录生成文件列表 我正在通过 Tkinter 从中生成一个照片库 然而排序是完全随机的 我没有看到目录中显示的照片顺序背后有更大的逻辑 当我打印列表时 它也是随机的 如何更改列表的顺序 按文件名或修改日期从该片段中
  • 具有 Runnable 类的 java 命令模式示例:接收器是否丢失?

    From Java 核心库中 GoF 设计模式的示例 https stackoverflow com questions 1673841 examples of gof design patterns in javas core libra
  • 增加 proxy_send_timeout 和 proxy_read_timeout ingress nginx

    我在 GKE 上运行部署 using quay io kubernetes ingress controller nginx ingress controller 0 12 0图像作为 nginx ingress controller 我正