You need to enable JavaScript to run this app.
导航
个性化配置
最近更新时间:2024.07.17 11:09:35首次发布时间:2022.07.07 14:45:59

ALB 提供监听维度的个性化配置功能。通过控制台可以创建并管理常规的 NGINX 配置策略,在监听器详情页一键关联配置策略,无需提交工单即可完成满足业务需求的个性化配置。

创建个性化配置策略

操作步骤

  1. 登录应用型负载均衡控制台,在左侧导航栏点击 个性化配置
  2. 个性化配置 页面,点击 创建个性化配置策略
  3. 创建个性化配置策略 标签页,参考字段解释,根据实际需要配置策略。
  4. 确认配置信息无误后,点击 确定 ,完成个性化配置策略。

字段解释

字段

是否必选

说明

名称

为创建的个性化配置策略命名,便于后续管理。具体规则如下:

  • 不能以http://https://开头。
  • 必须以字母或中文开头。
  • 只能包含中文、 字母、 数字、 点.、 下划线_和中划线-
  • 长度限制在 1~128 个字符之间。

描述

描述创建的个性化配置策略,具体规则如下:

  • 不能以http://https://开头。
  • 必须以字母或中文开头。
  • 只能包含中文、 字母、 数字、 英文逗号,、 点号.、 下划线_、 空格、 等号=、 短横线-、 中文逗号、 中文句号
  • 不填默认为空字符串。
  • 长度限制在 255 个字符以内。

TLS协议

版本(ssl_protocols)

勾选 TLS 协议后,默认选择 TLSv1、TLSv1.1、TLSv1.2 。ALB支持白名单用户开启 TLSv1.3,如需体验,请提交工单。具体规则如下:

  • 支持单选和多选,多选时协议版本必须连选。
  • 不支持配置重复的协议。
  • 开启TLSv1.3后,ALB会在您已选择的加密套件基础上默认添加 TLSv1.3 的三个套件,暂不支持您修改TLSv1.3 的套件。

加密套件(ssl_ciphers)

每种协议版本对应支持套件不同,不填写将使用默认加密套件,具体详见协议与加密套件

长连接保持时间(keepalive_timeout)

客户端与 ALB 之间的长连接保持时间,默认75s,输入范围0-900s。

建连超时时间(proxy_connect_timeout)

ALB 和后端服务器的建连超时时间,建议大于健康检查超时时间。默认4s,输入范围4-120s。

客户端请求body最大值(client_max_body_size)

可以接收客户端请求正文的最大值,默认60M,输入范围 1-30720M。

请求体缓存

默认开启。

  • 开启表示缓存客户端请求体:ALB 会缓存请求,全部接收完成后再分块转发给后端服务器。
  • 关闭表示不缓存客户端请求体:ALB 收到请求后,立即转发给后端服务器,此时会导致后端服务器有一定性能压力。

自定义响应头部(add_header)

将指定的字段添加到响应报头中。最多只能配置10个自定义响应头部。具体规则如下:

  • 自定义头部名称
    • _-、字母、数字组成的字符串。
    • 长度限制在 1~128 个字符之间。
  • 自定义头部值
    • 由字母、数字、_-*,/\:@=.、英文括号、英文空格、英文单双引号组成的字符串。
    • 带有数字、字母外的特殊字符,需要用引号括起来,如 "POST, OPTIONS"
    • 长度限制在 1~128 个字符之间。
  • always
    • always 是一个可选配置。
    • 不开always:只有响应码为200, 201, 204, 206, 301, 302, 303, 304, 307, 308 时,您新增的自定义响应头才会被添加到响应报头。(简称为2xx、3xx支持)
    • 开启always:对于所有响应码,您新增的自定义响应头都会添加到响应报头(2xx、3xx、4xx、5xx都支持)

注意

如果您的业务涉及跨域场景,请结合业务进行如下配置:

  • 允许跨域请求使用不同的方法
    • 自定义头部名称:Access-Control-Allow-Methods
    • 自定义头部值:"POST, OPTIONS"
    • 如果希望在响应码为4xx、5xx时也能获取跨域的响应头,请开启always 。
  • 哪些域名的请求被允许接入ALB
    • 自定义头部名称:Access-Control-Allow-Origin
    • 自定义头部值:具体域名,填“*”时表示任意来源的请求都被允许接入ALB。
    • 如果希望在响应码为4xx、5xx时也能获取跨域的响应头,请开启always 。

自定义请求头部(more_set_input_headers)

将指定的字段添加到请求报头中。具体规则如下:

  • header key
    • 由(_)、(-)、字母、数字组成的字符串。
    • 长度不超过128字符。
    • 不支持以(-)开头。
    • 不允许重复。
    • header key 不区分大小写。不支持: x-real-ip,x-forwarded-for,x-forwarded-proto,x-alb-waf-requestid,x-alb-waf-real-port,upgrade,connection,x-vport,x-vip,x-real-ip,x-clb-cluster,x-toutiao-lb-ip,x-vni,content-length,transfer-encoding,keep-alive,host,cookie,authority。
  • value
    • 只能是变量或者其他字符串。
    • 由字母、数字、(_)、(-)、(*)、(,)(/)、(@)、(=)、(.)、英文括号、空格、单引号组成的字符串。不能有(;)。
    • 引号只能出现在开始字符和末尾字符。
    • 首尾不能出现空格。
    • 长度不超过128字符。
    • 当 value 是变量,支持 $remote_addr,$proxy_add_x_forwarded_for,$remote_port,$scheme, $vport,$load_balancer_id
  • 最多只能配置10个自定义header。

读取后端响应的超时时间(proxy_read_timeout)

  • 定义 ALB 从后端服务器读取响应的超时时间。
  • 此超时时间仅针对两个连续的读操作之间设置,而不是整个响应的传输过程。
  • 如果后端服务器在该时间内未传输任何内容,则关闭连接。
  • 输入范围:30-3600s,默认取值:60s。

转发请求至后端的超时时间(proxy_send_timeout)

  • 定义 ALB 将请求传输到后端服务器的超时时间。
  • 此超时时间仅针对两个连续的写操作之间设置,而不是整个请求的传输过程。
  • 如果后端服务器在该时间内未收到任何内容,则关闭连接。
  • 输入范围:30-3600s,默认取值:60s。

读取客户端请求头的超时时间(client_header_timeout)

  • 定义读取客户端请求头的超时时间。
  • 如果客户端在这段时间内没有传输整个报头,则将返回 408错误码给客户端,表示请求超时。
  • 输入范围:30-120s,默认取值:60s。

读取客户端请求正文的超时时间(client_body_timeout)

  • 定义读取客户端请求正文的超时时间。
  • 此超时时间仅针对两个连续读操作之间的时间间隔设置,而不是整个请求的传输过程。
  • 如果客户端在这段时间内没有发送任何内容,则将返回 408错误码给客户端,表示请求超时。
  • 输入范围:30-120s,默认取值:60s。

向客户端发送响应的超时时间(send_timeout)

  • 定义向客户端发送响应的超时时间。
  • 此超时时间仅针对两个连续的写入操作之间设置,而不是整个响应的传输过程。
  • 如果客户端在此时间内没有收到任何内容,则连接将被关闭。
  • 输入范围:1-3600s,默认取值:60s。

客户端证书验证深度(ssl_verify_depth)

  • 定义客户端证书链的验证深度。
  • 输入范围:3-10,默认取值:3。

ssl session 过期时间
(ssl_session_timeout)

  • 自定义客户端保存 Session Ticket 的时间,过期后客户端将删除该 Ticket。
  • 输入范围:1-60分。默认取值:10分。

后端响应缓存区大小
(proxy_buffer_size)

  • 设置接收后端响应的缓存区大小。
  • 输入范围:4-32k。默认取值:4k。

客户端请求大标头缓存区
(large_client_header_buffers)

  • 设置用于读取大型客户端请求标头的缓存区的最大数量和大小。
  • 请求行不能超过一个缓存区的大小,否则会向客户端返回 414 错误。
  • 请求头字段不能超过一个缓存区的大小,否则会向客户端返回 400 错误。
  • 最大数量输入范围:4-8。默认取值:4。
  • 大小输入范围:8-16k。默认取值:8k。

项目

  • 项目是火山引擎用来管理云资源的单元,通过项目您可以实现对云资源的集中管理。
  • 在 ALB 中,默认为空,表示该个性化配置不属于任何项目。
  • 您可以在此选择个性化配置所在的项目。如果您没有创建过项目,可以选择 default 项目。更多项目信息详见项目资源管理

说明

  • ALB 默认支持 gzip 压缩,无需手动进行开启操作。
    • 如果客户端请求携带了Accept-Encoding: gzip,ALB 会对后端响应内容进行 gzip 压缩,如果客户端请求未携带 Accept-Encoding: gzip,ALB 不会对响应内容进行 gzip 压缩。
    • 支持的压缩内容类型包括:text/plaintext/csstext/xmlapplication/xmltext/javascriptapplication/x-javascriptapplication/jsonapplication/javascriptapplication/x-protobufapplication/octet-stream; ssmix=a
  • 在以下场景,ALB 压缩功能不生效。
    • 如果后端服务器返回的响应已经被压缩过了,ALB 不会对响应内容进行二次压缩。
    • 当响应内容的大小超过 200B 时,ALB 才会对响应内容进行压缩。若响应内容的大小在 200B 以下,ALB 的压缩功能将不再生效。
    • ALB 暂不支持 brotli 压缩。客户端请求携带了Accept-Encoding: br,ALB 不会对后端响应内容进行压缩。
  • 压缩会导致内容的 MD5 值发生变化。如果后端服务器配置了 MD5 校验机制,并且客户端需要校验原始响应内容的 MD5 值,请确保客户端请求头中不包含 Accept-Encoding: gzip,以避免 MD5 校验失败。

协议与加密套件

所选协议

加密套件

TLSv1

ECDHE-ECDSA-AES128-SHA
ECDHE-ECDSA-AES256-SHA
ECDHE-RSA-AES128-SHA
ECDHE-RSA-AES256-SHA
AES128-SHA
AES256-SHA
DES-CBC3-SHA

TLSv1.1

TLSv1.2

ECDHE-ECDSA-AES128-SHA
ECDHE-ECDSA-AES256-SHA
ECDHE-RSA-AES128-SHA
ECDHE-RSA-AES256-SHA
AES128-SHA
AES256-SHA
DES-CBC3-SHA
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES128-SHA256
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES128-SHA256
ECDHE-RSA-AES256-SHA384
AES128-GCM-SHA256
AES256-GCM-SHA384
AES128-SHA256
AES256-SHA256

TLS1.3

TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256

不填

默认加密套件:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5

绑定个性化策略

创建个性化策略后,为具体监听器绑定个性化配置策略并开启功能,监听才会遵循配置策略。

操作步骤

  1. 登录应用型负载均衡控制台
  2. 实例管理 页面,选择待配置监听关联的 ALB 实例。在 操作 列,点击 配置监听器
  3. 监听器 标签页的监听器列表中,点击待配置监听器名称。
  4. 监听详情 标签页下的个性化配置模块,点击 个性化配置 右边的编辑按钮,开启个性化配置状态,选择 个性化配置策略 后,点击 确定
    图片

说明

  • 个性化配置中的 TLS 版本与算法套件配置仅对 HTTPS 监听器生效。
  • 监听关闭个性化配置后,再次开启时需要重新选择个性化配置策略。
  • 每个地域下最多支持创建200个策略组,每个策略组最多可关联50个监听。