修改网关参数

为了适应不同场景的变化,您可以对云原生网关进行参数调整。通过合理调整参数,可以提升网络的效能、可靠性和安全性,确保网络的稳定运行和用户体验。但是需要注意的是,修改网关参数可能会对网络连接和应用程序的使用产生影响,因此在进行此类操作之前,请了解可修改参数的取值范围及其作用。本文介绍如何修改网关参数以及参数详情。

前提条件

创建云原生网关

操作步骤

说明
  • 为保证实例的稳定运行,仅支持对控制台中开放的参数进行修改,未在控制台中呈现的参数不支持修改。

  • 修改参数值时,请参见控制台上网关引擎参数页面中的取值范围列。

  1. 登录MSE网关管理控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择云原生网关 > 网关列表

  3. 网关列表页面,单击目标网关名称。

  4. 在左侧导航栏,选择参数配置。在网关引擎参数区域,单击目标参数操作列下方的编辑,根据下表设置您的参数值,并单击确定

网关引擎参数详情

参数名

参数类型

取值范围

默认值

参数描述

EnableHttp2

bool

[true,false]

false

作用于请求环节,开启后,客户端与服务端的通信将使用HTTP2协议。所有主流浏览器均已在其最新版本中支持HTTP2,不支持的浏览器将自动回退到HTTP1.1。修改后约1~2分钟生效。

  • true:使用HTTP2。

  • false:不使用HTTP2。

EnableGenerateRequestId

bool

[true,false]

true

作用于请求范围,根据配置会在请求头中生成RequestId,即X-Request-Id,用于唯一定位请求。

  • true:生成RequestId在用户的请求头中,可以唯一定位一个对网关的请求。

  • false:不会插入RequestId在用户的请求头中。

EnableGzip

bool

[true,false]

false

作用于请求与响应环节。

  • true:对响应使用Gzip进行压缩,减少网关流量,同时增加网关CPU消耗。

  • false:返回原始响应。

EnableSlashMerge

bool

[true,false]

false

作用于请求环节,是否合并请求中多余的/

  • true:www.example.com//b中多余的/会被合并,和www.example.com/b一致。

  • false:多余的/不会被合并。

DownstreamIdleTime

integer

[0,600]

300

作用于网关连接,客户端到网关在指定的时间内没有请求,则会断开连接。单位为秒。

PreserveHeaderFormat

bool

[true,false]

false

作用于请求和响应环节,HTTP1.1规范中Header头不区分大小写进行识别,为了保证与HTTP2规范兼容,默认会统一转化为小写。

  • true:保留请求响应头的大小写。

  • false:请求响应头会统一转化为小写。

DownstreamConnectionBufferLimits

integer

[0,2147483647]

32768

作用于网关连接,控制单条链接的缓冲区大小,配置后会影响吞吐和网关的内存使用。单位为字节。

EnableHardwareAccelerate

bool

[true,false]

true

作用于TLS加解密,是否开启硬件加速。若您的地域不支持硬件加速或购买时未指定硬件加速,此参数会无法生效。

  • true:开启硬件加速。

  • false:关闭硬件加速。

说明

由于底层硬件限制,目前仅华北2(北京)、华东1(杭州)、华东2(上海)、华南1(深圳)、亚太东南1(新加坡)地域支持硬件加速功能。

XffTrustedNum

integer

[0,10]

0

作用于请求环节,网关前可信任的代理个数,会影响网关是否会使用客户端产生的x-forwarded-for和x-request-id等请求头。

若取值为0,会将对端Socket IP作为真实IP,并将其设置到x-envoy-external-address请求头中传递给后端。

若取值非0,会根据取值从已经附加了Socket IP的x-forwarded-for中,从右向左跳过对应的跳数,然后取出真实IP,并将该IP设置到x-envoy-external-address请求头中传递给后端。同时,还会保留客户端传入的x-request-id和x-forwarded-proto请求头,不做任何修改。

DownstreamHttp2MaxConcurrentStream

integer

[0,2147483647]

100

作用于请求环节,客户端使用HTTP2时一条链接上的最大并发数。单位为byte。

InitialStreamWindowSize

integer

[0,2147483647]

65535

作用于请求环节,网关与客户端使用HTTP2时协商的Stream初始窗口大小。单位为byte。

InitialConnectionWindowSize

integer

[0,2147483647]

1048576

作用于请求环节,网关与客户端使用HTTP2时连接级别初始窗口大小。单位为byte。

EnableHttp3

bool

[true,false]

false

作用于请求环节,决定下游与网关协商是否使用HTTP3。

  • true:使用HTTP3

  • false:不使用HTTP3

UpstreamIdleTimeout

int

[0, 600]

30

作用于网关连接,即在指定的时间内,网关到上游服务端若没有请求,则会断开连接。单位为秒。

PathWithEscapedSlashes

string

  • KEEP_UNCHANGED

  • REJECT_REQUEST

  • UNESCAPE_AND_REDIRECT

  • UNESCAPE_AND_FORWARD

KEEP_UNCHANGED

针对统一资源标识符(URI)路径中包含的%2F、%2f、%5C或%5c等转义字符的请求转发策略。

  • KEEP_UNCHANGED:保持不变。

  • REJECT _REQUEST:网关返回400并拒绝请求。

  • UNESCAPE_AND_REDIRECT:取消转义并重定向。

  • UNESCAPE_AND_FORWARD:取消转义并向后转发。

ZipAlgorithm

List<string>

[brotli, gzip]

gzip

开启压缩后使用的算法,可以选择brotli或者gzip。

若同时设置了gzip和brotli,且Accept-Encoding中gzip和brotli的Q值相同的情况下,压缩算法会选择列表中靠前的值。

EnableProxyProtocol

bool

[true,false]

false

开启Proxy协议。如果网关入口流量使用NLB接入,不开启则无法获取客户端的真实IP,开启后对于非Proxy协议请求没有影响。

EnableCustomAuthConfigPush

bool

[true,false]

false

适用于使用自建的鉴权服务的场景,开启后鉴权规则变更不会引起连接中断,适用于WebSocket和在线业务场景。

KeepaliveHeaderTimeout

int

[0, 600](s)

0

用于生成Keep-Alive响应头返回给客户端,告知连接的保活时间。例如配置为10时,会返回响应头: `keep-alive: timeout=10`。配置为0时,不会返回该响应头。