type
status
date
slug
summary
tags
category
icon
1:Higress 简介
2:Higress 是什么
3:Higress 的定位
4:Higress 为什么选择了 Envoy + Istio?
5:Higress 快速入门
5.1:Higress 安装
5.2:Higress 功能说明
5.2.1:服务来源
5.2.2:服务列表
5.2.3:路由配置
5.2.4:域名管理
5.2.5:证书管理
5.2.6:插件管理
5.3:Higress 简单案例
6:Higress 高级应用
6.1:跨域
6.2:Rewrite
6.2.1:重写 Path
6.2.2:重写 Host
6.3:重定向
6.3.1:配置 HTTP 重定向 HTTPS
6.3.2:永久重定向
6.2.3:临时重定向
6.4:配置后端服务协议
6.5:超时
6.6:灰度发布
6.6.1:基于 Header 灰度
6.6.2:基于 Cookie 灰度
6.6.3:基于 Weights 灰度
7:Higress 插件功能
7.1:Basic Auth
7.2:API Key Auth
7.3:WAF 防护
7.4:其他方式配置
字段名称 | 数据类型 | 填写要求 | 描述 |
defaultConfig | object | 选填 | 插件默认配置,全局生效于没有匹配具体域名和路由配置的请求 |
matchRules | array of object | 选填 | 匹配域名或路由生效的配置 |
字段名称 | 数据类型 | 填写要求 | 配置示例 | 描述 |
ingress | array of string | ingress 和domain 中必填一项 | ["default/foo","default/bar"] | 匹配 ingress 资源对象,匹配格式为: 命名空间/ingress名称 |
domain | array of string | ingress 和domain 中必填一项 | ["example.com","*.test.com"] | 匹配域名,支持泛域名 |
config | object | 选填 | - | 匹配后生效的插件配置 |
插件名称 | 镜像地址 |
Key 认证 | higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/key-auth:1.0.0 |
Basic 认证 | higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/basic-auth:1.0.0 |
HMAC 认证 | higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/hmac-auth:1.0.0 |
JWT 认证 | higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/jwt-auth:1.0.0 |
机器人拦截 | higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/bot-detect:1.0.0 |
自定义应答 | higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/custom-response:1.0.0 |
请求屏蔽 | higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/request-block:1.0.0 |
基于 Key 限流 | higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/key-rate-limit:1.0.0 |
WAF 防护 | higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/waf:1.0.0 |
7.5:自定义插件
HTTP 处理阶段 | 触发时机 | 挂载方法 |
HTTP 请求头处理阶段 | 网关接收到客户端发送来的请求头数据时 | wrapper.ProcessRequestHeadersBy |
HTTP 请求 Body 处理阶段 | 网关接收到客户端发送来的请求 Body 数据时 | wrapper.ProcessRequestBodyBy |
HTTP 应答头处理阶段 | 网关接收到后端服务响应的应答头数据时 | wrapper.ProcessResponseHeadersBy |
HTTP 应答 Body 处理阶段 | 网关接收到后端服务响应的应答 Body 数据时 | wrapper.ProcessResponseBodyBy |
分类 | 方法名称 | 用途 | 可以生效的 HTTP 处理阶段 |
请求头处理 | GetHttpRequestHeaders | 获取客户端请求的全部请求头 | HTTP 请求头处理阶段 |
ㅤ | ReplaceHttpRequestHeaders | 替换客户端请求的全部请求头 | HTTP 请求头处理阶段 |
ㅤ | GetHttpRequestHeader | 获取客户端请求的指定请求头 | HTTP 请求头处理阶段 |
ㅤ | RemoveHttpRequestHeader | 移除客户端请求的指定请求头 | HTTP 请求头处理阶段 |
ㅤ | ReplaceHttpRequestHeader | 替换客户端请求的指定请求头 | HTTP 请求头处理阶段 |
ㅤ | AddHttpRequestHeader | 新增一个客户端请求头 | HTTP 请求头处理阶段 |
请求 Body 处理 | GetHttpRequestBody | 获取客户端请求 Body | HTTP 请求 Body 处理阶段 |
ㅤ | AppendHttpRequestBody | 将指定的字节串附加到客户端请求 Body 末尾 | HTTP 请求 Body 处理阶段 |
ㅤ | PrependHttpRequestBody | 将指定的字节串附加到客户端请求 Body 的开头 | HTTP 请求 Body 处理阶段 |
ㅤ | ReplaceHttpRequestBody | 替换客户端请求 Body | HTTP 请求 Body 处理阶段 |
应答头处理 | GetHttpResponseHeaders | 获取后端响应的全部应答头 | HTTP 应答头处理阶段 |
ㅤ | ReplaceHttpResponseHeaders | 替换后端响应的全部应答头 | HTTP 应答头处理阶段 |
ㅤ | GetHttpResponseHeader | 获取后端响应的指定应答头 | HTTP 应答头处理阶段 |
ㅤ | RemoveHttpResponseHeader | 移除后端响应的指定应答头 | HTTP 应答头处理阶段 |
ㅤ | ReplaceHttpResponseHeader | 替换后端响应的指定应答头 | HTTP 应答头处理阶段 |
ㅤ | AddHttpResponseHeader | 新增一个后端响应头 | HTTP 应答头处理阶段 |
应答 Body 处理 | GetHttpResponseBody | 获取客户端请求 Body | HTTP 应答 Body 处理阶段 |
ㅤ | AppendHttpResponseBody | 将指定的字节串附加到后端响应 Body 末尾 | HTTP 应答 Body 处理阶段 |
ㅤ | PrependHttpResponseBody | 将指定的字节串附加到后端响应 Body 的开头 | HTTP 应答 Body 处理阶段 |
ㅤ | ReplaceHttpResponseBody | 替换后端响应 Body | HTTP 应答 Body 处理阶段 |
HTTP 调用 | DispatchHttpCall | 发送一个 HTTP 请求 | - |
ㅤ | GetHttpCallResponseHeaders | 获取 DispatchHttpCall 请求响应的应答头 | - |
ㅤ | GetHttpCallResponseBody | 获取 DispatchHttpCall 请求响应的应答 Body | - |
ㅤ | GetHttpCallResponseTrailers | 获取 DispatchHttpCall 请求响应的应答 Trailer | - |
直接响应 | SendHttpResponse | 直接返回一个特定的 HTTP 应答 | - |
流程恢复 | ResumeHttpRequest | 恢复先前被暂停的请求处理流程 | - |
ㅤ | ResumeHttpResponse | 恢复先前被暂停的应答处理流程 | - |
- 作者:Gitlayzer
- 链接:https://www.devops-engineer.com.cn/article/higress_notes
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。