L4/L7 超时

基本概念

L4/L7 超时是 ALB 提供的一项功能,旨在配置 L4/L7 代理的超时时间。

超时通过 Lua 脚本实现,并且在更改后 不需要重载 Nginx。

CRD

timeout:
  properties:
    proxy_connect_timeout_ms:
      type: integer
    proxy_read_timeout_ms:
      type: integer
    proxy_send_timeout_ms:
      type: integer
  type: object

配置可以在以下位置进行设置:

  • 前端: .spec.config.timeout
  • 规则: .spec.config.timeout

超时的含义

超时分为三种类型:

  1. proxy_connect_timeout_ms: 定义与上游服务器建立连接的超时时间。如果在此时间内无法建立连接,请求将失败。

  2. proxy_read_timeout_ms: 定义从上游服务器读取响应的超时时间。该超时时间是在两次连续的读取操作之间设定的,而非针对整个响应。如果在此时间内未收到数据,连接将被关闭。

  3. proxy_send_timeout_ms: 定义向上游服务器发送请求的超时时间。与读取超时相似,该超时是在两次连续的写入操作之间设定的。如果在此时间内无法发送数据,连接将被关闭。

Ingress 注解

注解描述
nginx.ingress.kubernetes.io/proxy-connect-timeout对应 CR 中的 proxy_connect_timeout_ms
nginx.ingress.kubernetes.io/proxy-read-timeout对应 CR 中的 proxy_read_timeout_ms
nginx.ingress.kubernetes.io/proxy-send-timeout对应 CR 中的 proxy_send_timeout_ms

端口级超时

您可以直接在端口上配置超时,其用作 L4 超时。