mod_header
模块简介
mod_header根据自定义条件,修改请求或响应的头部。
基础配置
配置描述
模块配置文件: conf/mod_header/mod_header.conf
配置项 | 描述 |
---|---|
Basic.DataPath | String 规则配置的的文件路径 |
Log.OpenDebug | Boolean 是否开启 debug 日志 默认值False |
配置示例
[Basic]
DataPath = mod_header/header_rule.data
规则配置
配置描述
配置项 | 描述 |
---|---|
Version | String 配置文件版本 |
Config | Object 各产品线的 Header 规则 |
Config{k} | String 产品线名称 |
Config{v} | Object 产品线下的 Header 规则列表 |
Config{v}[] | Object Header 规则详细信息 |
Config{v}[].Cond | String 描述匹配请求或连接的条件, 语法详见Condition |
Config{v}[].Last | Boolean 如果规则条件匹配成功后,是否继续匹配下一条规则 |
Config{v}[].Actions | Object 匹配成功后的动作 |
Config{v}[].Actions.Cmd | String 匹配成功后执行的指令 |
Config{v}[].Actions.Params | Object 执行指令的相关参数列表 |
Config{v}[].Actions.Params[] | String 参数信息 |
模块动作
动作名称 | 含义 | 参数列表说明 |
---|---|---|
REQ_HEADER_SET | 设置请求头 | HeaderName, HeaderValue |
REQ_HEADER_ADD | 添加请求头 | HeaderName, HeaderValue |
REQ_HEADER_DEL | 删除请求头 | HeaderName |
RSP_HEADER_SET | 设置响应头 | HeaderName, HeaderValue |
RSP_HEADER_ADD | 添加响应头 | HeaderName, HeaderValue |
RSP_HEADER_DEL | 删除响应头 | HeaderName |
配置示例
{
"Version": "20190101000000",
"Config": {
"example_product": [
{
"cond": "req_path_prefix_in(\"/header\", false)",
"actions": [
{
"cmd": "REQ_HEADER_SET",
"params": [
"X-Bfe-Log-Id",
"%bfe_log_id"
]
},
{
"cmd": "REQ_HEADER_SET",
"params": [
"X-Bfe-Vip",
"%bfe_vip"
]
},
{
"cmd": "RSP_HEADER_SET",
"params": [
"X-Proxied-By",
"bfe"
]
}
],
"last": true
}
]
}
}
内置变量说明
BFE支持如下一系列变量并在处理请求阶段求值。关于变量的使用参见如上配置示例。
变量名 | 含义 |
---|---|
%bfe_client_ip | 客户端IP |
%bfe_client_port | 客户端端口 |
%bfe_request_host | 请求Host |
%bfe_session_id | 会话ID |
%bfe_log_id | 请求ID |
%bfe_cip | 客户端IP (CIP) |
%bfe_vip | 服务端IP (VIP) |
%bfe_server_name | BFE实例地址 |
%bfe_cluster | 目的后端集群 |
%bfe_backend_info | 后端信息 |
%bfe_ssl_resume | 是否TLS/SSL会话复用 |
%bfe_ssl_cipher | TLS/SSL加密套件 |
%bfe_ssl_version | TLS/SSL协议版本 |
%bfe_ssl_ja3_raw | TLS/SSL客户端JA3算法指纹数据 |
%bfe_ssl_ja3_hash | TLS/SSL客户端JA3算法指纹哈希值 |
%bfe_protocol | 访问协议 |
%client_cert_serial_number | 客户端证书序列号 |
%client_cert_subject_title | 客户端证书Subject title |
%client_cert_subject_common_name | 客户端证书Subject Common Name |
%client_cert_subject_organization | 客户端证书Subject Organization |
%client_cert_subject_organizational_unit | 客户端证书Subject Organizational Unit |
%client_cert_subject_province | 客户端证书Subject Province |
%client_cert_subject_country | 客户端证书Subject Country |
%client_cert_subject_locality | 客户端证书Subject Locality |