全局配置说明

通用全局配置

Higress 的全局配置 ConfigMap 对象 higress-config 增加 higress 项, 参考配置如下:

  1. apiVersion: v1
    data:
    higress: |-
    tracing:
    enable: true
    sampling: 100
    timeout: 500
    skywalking:
    service: skywalking-oap-server.op-system.svc.cluster.local
    port: 11800
    gzip:
    enable: false
    minContentLength: 1024
    contentType:
    - text/html
    - application/json
    - text/css
    - application/javascript
    - application/xhtml+xml
    - image/svg+xml
    disableOnEtagHeader: true
    memoryLevel: 5
    windowBits: 12
    chunkSize: 4096
    compressionLevel: BEST_COMPRESSION
    compressionStrategy: DEFAULT_STRATEGY
    addXRealIpHeader: false
    disableXEnvoyHeaders: false
    downstream:
    connectionBufferLimits: 32768
    http2:
    initialConnectionWindowSize: 1048576
    initialStreamWindowSize: 65535
    maxConcurrentStreams: 100
    idleTimeout: 180
    maxRequestHeadersKb: 60
    upstream:
    connectionBufferLimits: 1048576
    idleTimeout: 10
  2. kind: ConfigMap
    metadata:
    name: higress-config
    namespace: higress-system

配置说明

字段类型说明默认
addXRealIpHeaderboolean是否添加 x-real-ip 请求头,如果是true,则会为请求头添加 x-real-ip 参数false
disableXEnvoyHeadersboolean是否关闭附加在转发请求中的 x-envoy 前缀请求头(例如 x-envoy-original-path),如果是true,则会关闭false
downstream参考下面 downstream 设置downstream 设置参考下面 downstream 默认值
upstream参考下面 upstream 设置upstream 设置参考下面 upstream 默认值
tracing参考下面 tracing 设置tracing 设置参考下面 tracing 默认值
gzip参考下面 gzip 设置gzip 设置参考下面 gzip 默认值

Tracing 配置说明

字段类型说明默认
enableboolean是否开启 tracing 功能false
samplingfloat采样率,0.0 - 100.0 之间100.0
timeoutint链路跟踪中间件 grpc 连接超时,单位毫秒500
skywalking参考下面 skywalking 设置skywalking 配置未设置
zipkin参考下面 zipkin 设置zipkin 配置未设置
skywalking 配置
字段类型说明默认
servicestringSkywalking grpc 服务地址
portstringSkywalking grpc 服务端口
access_tokenstringSkywalking grpc 服务访问凭证
zipkin 配置
字段类型说明默认
servicestringzipkin 服务地址
portstringzipkin 服务端口

注意: skywalking 和 zipkin 不能同时设置,只有一个配置能生效

Gzip 配置说明

字段类型说明默认
enableboolean是否开启 gzip 功能false
minContentLengthint启用压缩输出最少字节长度1024
contentTypearray启用压缩输出content-type类型text/html,application/json,text/css,
application/javascript,application/xhtml+xml,
image/svg+xml
disableOnEtagHeaderboolean如果是true时, 当 response 包含 etag header时会关闭 gzip功能true
memoryLevelint从 1 到 9 控制 zlib用到内存.5
windowBitsint从 9 到 15 表示压缩算法窗口大小.12
chunkSizeintzlib buffer大小4096
compressionLevelstringzlib 压缩比率BEST_COMPRESSION
compressionStrategystringzlib 压缩策略DEFAULT_STRATEGY

关于 gzip 参数配置详细说明可以参考 envoy gzip压缩文档: https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/compression/gzip/compressor/v3/gzip.proto#envoy-v3-api-msg-extensions-compression-gzip-compressor-v3-gzip

Downstream 配置说明

字段类型说明默认
connectionBufferLimitsint连接缓冲区大小,单位字节32768
http2参考下面 http2 设置http2 设置参考下面 http2 默认值
idleTimeoutint连接空闲超时时间,单位秒,0表示关闭该配置180
maxRequestHeadersKbint最大请求头大小,单位Kb,最大为8192Kb60
http2 配置说明
字段类型说明默认
initialConnectionWindowSizeinthttp2 连接窗口大小,单位字节,范围为65535~21474836471048576
initialStreamWindowSizeinthttp2 流窗口大小,单位字节,范围为65535~214748364765535
maxConcurrentStreamsinthttp2 最大并发流数量,范围为1~2147483647100

Upstream 配置说明

字段类型说明默认
connectionBufferLimitsint连接缓冲区大小,单位字节1048576
idleTimeoutint连接空闲超时时间(空闲定义是没有未处理完的请求,如果有请求在处理中,不会判定为idle),单位秒,0表示关闭该配置10

TLS 证书全局配置

注意:当前仅对Ingress模式生效,Gateway API暂不支持

Higress TLS 的全局配置 ConfigMap 对象 higress-https , 参考配置如下:

  1. apiVersion: v1
    kind: ConfigMap
    metadata:
    name: higress-https
    namespace: higress-system
    data:
    cert: |
    automaticHttps: true
    renewBeforeDays: 30
    fallbackForInvalidSecret: true
    acmeIssuer:
    - name: letsencrypt
    email: test@example.com
    credentialConfig:
    - tlsIssuer: letsencrypt
    domains:
    - foo.com
    tlsSecret: foo-com-secret

配置说明

字段类型说明默认
nameboolean是否启动通过 ACME Issuer 来签发证书true
renewBeforeDaysint证书过期前多少天自动Renew, 最大值为90天30
fallbackForInvalidSecretboolean如果开启,当 ingress TLS 里配置 secretName 不存在时,会在 credentialConfig 配置里根据域名匹配 secretfalse
acmeIssuerarrayacmeIssuer 设置参考下面 acmeIssuer
credentialConfigarraycredentialConfig 设置参考下面 credentialConfig

credentialConfig 配置

字段类型说明默认
tlsSecretstring证书 secret 名称-
tlsIssuerstring对应 ACME Issuer 名称,现在只支持 letsencrypt。不填 tlsIssuer 时,domains可以填列表或泛域名,用于全局管理这些域名的secret配置; 如果设置为 letsencrypt, domains 下只能配置一个域名,而且不能是泛域名,并且 tlsSecret 不能是已经存在的非 Higress 创建的自动证书-
domainsarray域名配置,可以是泛域名-

acmeIssuer 配置

字段类型说明默认
namestringACME Issuer 名称,只支持 letsencrypt-
emailstringACME Issuer 邮箱,用于通知证书变更等事件-

如何开启和关闭 ACME Issuer 自动管理证书

安装时默认启动 ACME Issuer 自动管理证书和系统随机生成邮箱地址,具体配置参数如下:

参数名参数说明默认值
higress-core.controller.automaticHttps.enabled是否开启ACME Issuer签发证书,只支持 letsencrypttrue
higress-core.controller.automaticHttps.emailACME Issuer 邮箱,如果为空,系统随机生成邮箱地址-