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

配置可以应用于:

  • Frontend:.spec.config.timeout
  • Rule:.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 超时使用。