1 - 配置
1. 全局配置(Configs)
编号 | 配置项名称 | 用途描述 | 可选值 | 是否必须 |
---|---|---|---|---|
1 | EnableDebug | 是否输出调试日志信息 | true,false | 否 |
2 | StripAnyHostPort | 是否忽略 HTTP 请求头中 Host 的端口号, 比如:将 Host: www.aaa.com:8080 视为 Host: www.aaa.com | true,false | 否 |
3 | DefaultPassthroughUpstreamPort | TLS Passthrough 场景, 如果没有配置上游端口,则使用此端口号 | 1~65535,通常设置为 443 | 否 |
4 | SocketTimeout | 配置socket网络超时时间(单位:秒) | 大于0,默认是60 | 否 |
5 | PidFile | 将pipy进程id写入到文件 | 例子:/var/log/pipy.pid | 否 |
6 | ResourceUsage | 配置采集pipy cpu、mem使用率 | 参考 1.1 | 否 |
7 | HealthCheckLog | 配置健康检查日志用的存储服务器信息 | 参考 1.2 | 否 |
8 | Gzip | 配置静态文本文件压缩相关参数 | 参考 1.3 | 否 |
9 | ProxyRedirect | 对上游返回的HTTP应答中的Location、Refresh等URL进行重写 | 比如:“ProxyRedirect”: {“http://www.flomesh.com/aa": “http://$http_host/ab”, “http://www.flomesh.com/a0": “/a1”} | 否 |
10 | ErrorPage | 对HTTP错误码返回自定义网页或链接,类型为列表 [] | 参考 1.4 | 否 |
11 | HTTP1PerRequestLoadBalancing | HTTP1.1请求时,是否启用基于请求的负载均衡策略,默认为false | true、false | 否 |
12 | HTTP2PerRequestLoadBalancing | HTTP2请求时,是否启用基于请求的负载均衡策略,默认为true | true、false | 否 |
13 | Fault | 注入错误,用于测试场景 | 参考 3.1.1.3 | 否 |
1.1 ResourceUsage
编号 | 配置项名称 | 用途描述 | 可选值 | 是否必须 |
---|---|---|---|---|
1 | ScrapeInterval | 采集cpu、mem使用率的时间间隔(单位:秒) | 大于0,建议60 | 是 |
2 | StorageAddress | 存储cpu、mem使用率的REST url | 如果没有配置就不存储 | 否 |
3 | Authorization | 访问REST url用的 Basic认证信息 | 如果没有启用认证就不需要配置 | 否 |
1.2 HealthCheckLog
编号 | 配置项名称 | 用途描述 | 可选值 | 是否必须 |
---|---|---|---|---|
1 | StorageAddress | 存储健康检查日志的REST url | 如果没有配置就不存储健康检查日志 | 否 |
2 | Authorization | 访问REST url用的 Basic认证信息 | 如果没有启用认证就不需要配置 | 否 |
1.3 Gzip
编号 | 配置项名称 | 用途描述 | 可选值 | 是否必须 |
---|---|---|---|---|
1 | DisableGzip | 禁用静态文本文件压缩功能,默认为false | true、false | 否 |
2 | GzipMinLength | 文本文件压缩的最小字节数,小于此值时不压缩,默认为1024 | 大于等于0 | 否 |
3 | GzipHttpVersion | 文本文件压缩最低HTTP版本 | 1.0,1.1 等 | 否 |
4 | GzipTypes | 只对这些content-type启用压缩 | [“text/css”, “text/html”] 等 | 是 |
5 | GzipDisable | 针对user-agent来设置禁用压缩 | 比如:“MSIE [1-6].” | 否 |
1.4 ErrorPage
编号 | 配置项名称 | 用途描述 | 可选值 | 是否必须 |
---|---|---|---|---|
1 | Error | 错误码列表 | 比如:[404] | 是 |
2 | Page | 自定义网页名称或者URL地址 | 比如:404.html 或 http://www.flomesh.cn/404.html | 是 |
3 | Directory | 自定义网页所在目录,如果Page是URL则忽略此参数 | 比如:/var/www/html/error | 是 |
2. 监听端口配置(Listeners)
编号 | 配置项名称 | 用途描述 | 可选值 | 是否必须 |
---|---|---|---|---|
1 | Port | 应用使用的端口号 | 1~65535 | 是 |
2 | Listen | 非必须配置,监听端口号, 如果未配置,使用 Port 为监听端口号 | 1~65535 | 否 |
3 | Protocol | 端口所使用的协议 | HTTP、HTTPS、TLS、TCP、UDP | 是 |
4 | AccessControlLists | 访问控制列表,设置访问者 IP 地址黑白名单。 如果设置了白名单,就以白名单为准; 如果未设置白名单,就以黑名单为准。 | 参考 2.1 | 否 |
5 | BpsLimit | 网络限速(单位:字节/秒) | “BpsLimit”: 10000000 | 否 |
6 | TLS | 配置 TLS 相关的证书信息 | 参考 2.2 | 否 |
2.1 AccessControlLists
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Blacklist | 黑名单列表 | [“1.1.1.1”, “2.2.2.0/24”] | 否 |
2 | Whitelist | 白名单列表 | [“1.1.1.1”, “2.2.2.0/24”] | 否 |
3 | EnableXFF | 是否检查请求头 x-forwarded-for 中的 IP 地址,默认不检查 | true | 否 |
4 | Status | 拒绝访问后返回的响应状态码,不指定时默认为 403 | 403 | 否 |
5 | Message | 拒绝访问后返回的响应内容,不指定时默认为空字符 | Forbidden | 否 |
2.2 TLS
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | TLSModeType | TLS 工作模式 | Terminate、Passthrough | 是 |
2 | mTLS | 是否启用客户端证书认证 | true、false | 否 |
3 | Certificates | 证书、私钥、CA 证书 | 参考 2.2.1 | 否 |
2.2.1 Certificates
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | CertChain | 证书 | “—–BEGIN CERTIFICATE—–\n” | 是 |
2 | PrivateKey | 私钥 | “—–BEGIN RSA PRIVATE KEY—–\n” | 是 |
3 | IssuingCA | 签名证书 | “—–BEGIN CERTIFICATE—–\n” | 是 |
3. 路由规则(RouteRules)
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | 端口号 | Listeners 中端口号所使用的路由规则 | “80” 或 “80, 443” | 是 |
3.1 端口号配置(Protocol 为 HTTP、HTTPS 的配置格式)
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | 域名 | HTTP 虚拟主机所使用的域名 | “*” 或 “www.test.com, api.test.com” | 是 |
3.1.1 域名
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | RouteType | 路由类型 | HTTP、GRPC | 是 |
2 | Matches | 匹配规则 | 参考 3.1.1.1 | 是 |
3 | RateLimit | 域名限流配置 | 参考 3.1.1.2 | 否 |
4 | AccessControlLists | 访问控制列表,设置访问者 IP 地址黑白名单。如果设置了白名单,就以白名单为准;如果未设置白名单,就以黑名单为准。 | 参考 2.1 | 否 |
5 | Gzip | 配置静态文本文件压缩相关参数 | 参考 1.3 | 否 |
6 | ProxyRedirect | 参考 1. 全局配置(Configs)说明 | 否 | |
7 | ErrorPage | 参考 1. 全局配置(Configs)说明 | 否 | |
8 | AccessLog | HTTP应用访问日志的文件路径 | 比如:“AccessLog”: “/var/log/fgw-access.log” | 否 |
9 | ProxyPreserveHost | 是否保持HTTP请求中的Host不变,默认为 false | true、false | 否 |
10 | Fault | 注入错误,用于测试场景 | 参考 3.1.1.3 | 否 |
3.1.1.1 Matches
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Path | HTTP uri path 匹配 | 参考 3.1.1.1.1 | 否 |
2 | Headers | HTTP header 匹配 | 参考 3.1.1.1.2 | 否 |
3 | Methods | 允许的 HTTP Method | [‘GET’, ‘POST’, ‘DELETE’, ‘PUT’] | 否 |
4 | QueryParams | HTTP 请求参数匹配 | 参考 3.1.1.1.3 | 否 |
5 | BackendService | 动态代理用的后端服务 | 参考 3.1.1.1.4 | BackendService 或 ServerRoot 必须有一个存在 |
6 | ServerRoot | 静态页面所对应的目录 | “/var/www/html” | BackendService 或 ServerRoot 必须有一个存在 |
7 | Method | RouteType 为 GRPC 时,匹配服务 | 参考 3.1.1.1.5 | 否 |
8 | RateLimit | 路由限流配置 | 参考 3.1.1.2 | 否 |
9 | AccessControlLists | 访问控制列表,设置访问者 IP 地址黑白名单。如果设置了白名单,就以白名单为准;如果未设置白名单,就以黑名单为准。 | 参考 2.1 | 否 |
10 | Filters | 过滤器配置 | 参考 3.1.1.1.6 | 否 |
11 | Gzip | 配置静态文本文件压缩相关参数 | 参考 1.3 | 否 |
12 | ProxyRedirect | 参考 1. 全局配置(Configs)说明 | 否 | |
13 | ErrorPage | 参考 1. 全局配置(Configs)说明 | 否 | |
14 | Fault | 注入错误,用于测试场景 | 参考 3.1.1.3 | 否 |
3.1.1.1.1 Path
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Type | Path 匹配类型 | Prefix、Exact、Regex | 是 |
2 | Path | Path 值 | “/”, “/prefix” 等 | 是 |
3.1.1.1.2 Headers
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Exact | 精确匹配 Header | “Headers”: { “Exact”: { “abc”: “1” }, “Regex”: { “xxx”: “^[0-9]+" } } | 否 |
2 | Regex | 正则匹配 Header | 同上 | 否 |
3.1.1.1.3 QueryParams
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Exact | 精确匹配 Params | “QueryParams”: { “Exact”: { “abc”: “1” }, “Regex”: { “xxx”: “^[0-9]+" } } | 否 |
2 | Regex | 正则匹配 Params | 同上 | 否 |
3.1.1.1.4 BackendService
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | 后端服务名 | 后端服务的名称,比如:“backendService1” | 参考:3.1.1.1.4.1 | 是 |
3.1.1.1.4.1 BackendService后端服务名
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Weight | 权重 | 整数 | 是 |
2 | Filters | 过滤器配置 | 参考 3.1.1.1.6 | 否 |
3.1.1.1.5 Method
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Type | 匹配类型 | Exact | 是 |
2 | Service | GRPC 服务名 | “com.example.GreetingService” | 是 |
3 | Method | GRPC 方法名 | “Hello” | 是 |
3.1.1.2 RateLimit
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Backlog | 积压值:达到限流时,允许的排队数量 | 否 | |
2 | Requests | 请求值,限流窗口内分配的访问次数 | 是 | |
3 | Burst | 爆发值,限流窗口内最大允许访问次数 | 否 | |
4 | StatTimeWindow | 限流时间窗口(单位:秒) | 是 | |
5 | ResponseStatusCode | 发生限流时,返回的 HTTP 状态码 | 100~599 | 是 |
6 | ResponseHeadersToAdd | 发生限流时,添加的 HTTP header 信息 | 否 |
3.1.1.3 Fault
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Delay | 注入响应延时 | 参考 3.1.1.3.1 | 否 |
2 | Abort | 注入响应错误码 | 参考 3.1.1.3.2 | 否 |
3.1.1.3.1 Delay
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Percent | 对请求注入失败的百分比 | 0~100 | 是 |
2 | Fixed | 延时时间 | 大于0 | 否 |
3 | Range | 延时时间的随机范围 | 比如:“0-100” | 否 |
4 | Unit | 延时的时间单位,默认为 “ms” | “ms”、“s”、“m” | 否 |
3.1.1.3.1 Abort
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Percent | 对请求注入失败的百分比 | 0~100 | 是 |
2 | Status | HTTP、GRPC 的应答状态码,比如:503 | 数字 | 是 |
3 | Message | 应答提示信息 | 字符串 | 否 |
3.2 端口号配置(Protocol 为 TCP、UDP 的配置格式)
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | 服务名: 权重 | 对应上游服务的名称、权重 | { “service1”: 50, “service2”: 50 } | 是 |
3.3 端口号配置(Protocol: “TLS”, TLSModeType: “Passthrough 的配置格式)
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | 服务域名: 上游域名 | 对应上游服务域名 | { “www.test.com”: “www.abc.com:443”, “www.xyz.com”: “www.xyz.com:8443” } | 是 |
3.4 端口号配置(Protocol: “TLS”, TLSModeType: “Terminate 的配置格式)
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | 域名 | 服务域名和对应的上游服务列表 | “abc.com”: { “service1”: 100 } | 是 |
3.1.1.1.6 Filters
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | RequestHeaderModifier | 修改 HTTP 请求头 | 参考 3.1.1.1.6.1 | 否 |
2 | ResponseHeaderModifier | 修改 HTTP 应答头 | 参考 3.1.1.1.6.2 | 否 |
3 | RequestRedirect | 请求重定向 | 参考 3.1.1.1.6.3 | 否 |
4 | URLRewrite | 请求的 URL 重写 | 参考 3.1.1.1.6.4 | 否 |
5 | RequestMirror | 将请求镜像到其他服务 | 参考 3.1.1.1.6.5 | 否 |
3.1.1.1.6.1 RequestHeaderModifier
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Set | 设置 HTTP header | [ { “name”: “my-header1”, “value”: “foo” } ] | 否 |
2 | Add | 增加 HTTP header | [ { “name”: “my-header2”, “value”: “bar” } ] | 否 |
3 | Remove | 删除 HTTP header | [ “my-header3”, “my-header4” ] | 否 |
3.1.1.1.6.2 ResponseHeaderModifier
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Set | 设置 HTTP header | [ { “name”: “my-header1”, “value”: “foo” } ] | 否 |
2 | Add | 增加 HTTP header | [ { “name”: “my-header2”, “value”: “bar” } ] | 否 |
3 | Remove | 删除 HTTP header | [ “my-header3”, “my-header4” ] | 否 |
3.1.1.1.6.3 RequestRedirect
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Scheme | 协议描述 | http、https | 否 |
2 | Hostname | 重定向到的域名 | 否 | |
3 | Path | 重定向到的路径 | 是 | |
4 | Port | 重定向到的端口 | 否 | |
5 | StatusCode | 重定向返回的状态码 | 301、302 | 是 |
3.1.1.1.6.4 URLRewrite
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Hostname | 主机名/域名重写 | sub.example.com | 否 |
2 | Path | 路径重写规则 | 参考 3.1.1.1.6.4.1 | 是 |
3.1.1.1.6.4.1 URLRewrite Path 规则
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Type | Url 重写匹配规则 | ReplacePrefixMatch:前缀匹配 ReplaceFullPath:全路径匹配 | 是 |
2 | ReplacePrefixMatch | 前缀匹配时替换 path | type 为 ReplacePrefixMatch 时,必须配置 | |
3 | ReplaceFullPath | 全路径匹配时替换 path | type 位 ReplaceFullPath 时,必须配置 |
3.1.1.1.6.5 RequestMirror
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | BackendService | 接收请求的服务名 | 比如:“backendService2” | 是 |
4. 服务配置(Services)
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | 服务 | 对应 RouteRules 中,BackendService 配置使用的服务名 | 参考 4.1 | 是 |
4.1 服务 配置格式
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | StickyCookieName | 使用 cookie sticky 负载均衡时,cookie 的名称 | “_srv_id” | 否 |
2 | StickyCookieExpires | 使用 cookie sticky 时,cookie 的有效期 | 3600 | 否 |
3 | HealthCheck | 对上游服务的健康检查配置 | 参考 4.1.1 | 否 |
4 | Endpoints | 上游服务信息 | 参考 4.1.2 | 是 |
5 | CircuitBreaking | 熔断配置,用于 Protocol 为 HTTP、HTTPS 的场景 | 参考 4.1.4 | 否 |
6 | RetryPolicy | 重试配置,用于 Protocol 为 HTTP、HTTPS 的场景 | 参考 4.1.5 | 否 |
7 | UpstreamCert | 访问上游使用 默认使用的 TLS 证书 | 参考 4.1.6 | 否 |
8 | Algorithm | 负载均衡算法,支持 RoundRobinLoadBalancer(未指定时默认使用)、HashingLoadBalancer、LeastConnectionLoadBalancer | “RoundRobinLoadBalancer” | 否 |
4.1.1 HealthCheck
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Interval | 主动检测的时间间隔, 如果不设置,不会进行主动健康检测 单位:秒 | 10 | 否 |
2 | MaxFails | 连续失败次数后,将上游设置为不可用 | 3 | 是 |
3 | FailTimeout | 被动检测时,服务不可用时间间隔。 当连续失败次数达到 MaxFails 后,该上游将暂时禁用。 如果设置了主动检查,该参数被忽略。单位:秒 | 30 | 否 |
4 | Path | 使用 HTTP 方式进行健康检查,为 HTTP path 如果未设置 Path,表示用 TCP 方式进行端口健康检查 | 否 | |
5 | Matches | HTTP 健康检查时的判定条件 | 参考 4.1.1.1 | 否 |
4.1.1.1 Matches
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | StatusCodes | 期望的HTTP状态码数组 | 比如: [ 200 ] | 否 |
2 | Body | 期望返回Body中包含的内容 | 比如:OK | 否 |
3 | Headers | 期望包含的HTTP头 | 比如:{“content-type”: “text/html”} | 否 |
4.1.2 Endpoints
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | 上游目标地址 | 参考 4.1.2.1 | 是 |
4.1.2.1 上游目标地址
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | Weight | 权重 | 整数 | 是 |
2 | Tags | 标记 | 否 | |
3 | UpstreamCert | 访问上游用的 TLS 证书 | 否 | |
4 | UseSSL | 不需要客户端SSL证书的场景,是否使用SSL连接访问上游服务 | true、false | 否 |
5 | Host | 重写HTTP请求头中的Host,默认使用上游target(ip:端口) | 否 |
4.1.4 CircuitBreaking
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | MinRequestAmount | 触发熔断必须达到的访问次数 | 是 | |
2 | StatTimeWindow | 熔断判定统计窗口(单位:秒) | 是 | |
3 | SlowTimeThreshold | 慢访问时间阈值(单位:秒) | 否 | |
4 | SlowAmountThreshold | 触发熔断的慢访问次数 | 否 | |
5 | SlowRatioThreshold | 触发熔断的慢访问占比 | 0.00~1.00 | 否 |
6 | ErrorAmountThreshold | 触发熔断的失败访问次数 | 否 | |
7 | ErrorRatioThreshold | 触发熔断的失败访问占比 | 0.00~1.00 | 否 |
8 | DegradedTimeWindow | 熔断时间窗口(单位:秒) | 是 | |
9 | DegradedStatusCode | 熔断时返回的 HTTP 状态码 | 100~599 | 是 |
10 | DegradedResponseContent | 熔断时返回的提示信息 | 否 |
4.1.5 RetryPolicy
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | RetryOn | 重试条件: 设置为 HTTP 状态码 | “5xx” 等 | 是 |
2 | NumRetries | 重试次数 | 否 | |
3 | RetryBackoffBaseInterval | 重试间隔(单位:秒) | 否 |
4.1.6 UpstreamCert
编号 | 配置项名称 | 用途描述 | 参考值 | 是否必须 |
---|---|---|---|---|
1 | CertChain | 证书 | “—–BEGIN CERTIFICATE—–……” | 是 |
2 | PrivateKey | 私钥 | “—–BEGIN RSA PRIVATE KEY—–……” | 是 |
3 | IssuingCA | CA 证书 | “—–BEGIN CERTIFICATE—–……” | 否 |
5. 流程链(Chains)配置
可以动态增减功能模块(插件)
编号 | 流程名称 | 模块列表 |
---|---|---|
1 | HTTPRoute | “common/access-control.js”, “common/ratelimit.js”, “common/consumer.js”, “http/codec.js”, “http/auth.js”, “http/route.js”, “http/service.js”, “http/metrics.js”, “http/tracing.js”, “http/logging.js”, “http/circuit-breaker.js”, “http/throttle-domain.js”, “http/throttle-route.js”, “filter/request-redirect.js”, “filter/header-modifier.js”, “filter/url-rewrite.js”, “http/forward.js”, “http/default.js” |
2 | HTTPSRoute | “common/access-control.js”, “common/ratelimit.js”, “common/tls-termination.js”, “common/consumer.js”, “http/codec.js”, “http/auth.js”, “http/route.js”, “http/service.js”, “http/metrics.js”, “http/tracing.js”, “http/logging.js”, “http/circuit-breaker.js”, “http/throttle-domain.js”, “http/throttle-route.js”, “filter/request-redirect.js”, “filter/header-modifier.js”, “filter/url-rewrite.js”, “http/forward.js”, “http/default.js” |
3 | TLSPassthrough | “common/access-control.js”, “common/ratelimit.js”, “tls/passthrough.js”, “common/consumer.js” |
4 | TLSTerminate | “common/access-control.js”, “common/ratelimit.js”, “common/tls-termination.js”, “common/consumer.js”, “tls/forward.js” |
5 | TCPRoute | “common/access-control.js”, “common/ratelimit.js”, “tcp/forward.js”, “server/web-server.js” |
2 - 插件
FGW 目前支持的插件列表,以及插件链。
插件链
HTTP 路由
HTTP 插件链,处理 HTTP 流量。
{
"HTTPRoute": [
"common/access-control.js",
"common/ratelimit.js",
"common/consumer.js",
"http/codec.js",
"http/auth.js",
"http/route.js",
"http/service.js",
"http/metrics.js",
"http/tracing.js",
"http/logging.js",
"http/circuit-breaker.js",
"http/throttle-domain.js",
"http/throttle-route.js",
"filter/request-redirect.js",
"filter/header-modifier.js",
"filter/url-rewrite.js",
"http/forward.js",
"http/default.js"
]
}
HTTPS 路由
HTTPS 插件链,处理 HTTPS 流量。与 HTTP 插件链相比,增加了插件 common/tls-termination.js
。
{
"HTTPSRoute": [
"common/access-control.js",
"common/ratelimit.js",
"common/tls-termination.js",
"common/consumer.js",
"http/codec.js",
"http/auth.js",
"http/route.js",
"http/service.js",
"http/metrics.js",
"http/tracing.js",
"http/logging.js",
"http/circuit-breaker.js",
"http/throttle-domain.js",
"http/throttle-route.js",
"filter/request-redirect.js",
"filter/header-modifier.js",
"filter/url-rewrite.js",
"http/forward.js",
"http/default.js"
]
}
TLS 透传
用于 TLS 透传场景的插件链。
{
"TLSPassthrough": [
"common/access-control.js",
"common/ratelimit.js",
"tls/passthrough.js",
"common/consumer.js"
]
}
TLS 卸载
用于 TLS 卸载的插件链。
{ “TLSTerminate”: [ “common/access-control.js”, “common/ratelimit.js”, “common/tls-termination.js”, “common/consumer.js”, “tls/forward.js” ] }
TCP 路由
{
"TCPRoute": [
"common/access-control.js",
"common/ratelimit.js",
"tcp/forward.js"
]
}
完整配置
{
"Chains": {
"HTTPRoute": [
"common/access-control.js",
"common/ratelimit.js",
"common/consumer.js",
"http/codec.js",
"http/auth.js",
"http/route.js",
"http/service.js",
"http/metrics.js",
"http/tracing.js",
"http/logging.js",
"http/circuit-breaker.js",
"http/throttle-domain.js",
"http/throttle-route.js",
"filter/request-redirect.js",
"filter/header-modifier.js",
"filter/url-rewrite.js",
"http/forward.js",
"http/default.js"
],
"HTTPSRoute": [
"common/access-control.js",
"common/ratelimit.js",
"common/tls-termination.js",
"common/consumer.js",
"http/codec.js",
"http/auth.js",
"http/route.js",
"http/service.js",
"http/metrics.js",
"http/tracing.js",
"http/logging.js",
"http/circuit-breaker.js",
"http/throttle-domain.js",
"http/throttle-route.js",
"filter/request-redirect.js",
"filter/header-modifier.js",
"filter/url-rewrite.js",
"http/forward.js",
"http/default.js"
],
"TLSPassthrough": [
"common/access-control.js",
"common/ratelimit.js",
"tls/passthrough.js",
"common/consumer.js"
],
"TLSTerminate": [
"common/access-control.js",
"common/ratelimit.js",
"common/tls-termination.js",
"common/consumer.js",
"tls/forward.js"
],
"TCPRoute": [
"common/access-control.js",
"common/ratelimit.js",
"tcp/forward.js"
]
}
}