mod_header

模块简介

mod_header根据自定义条件,修改请求或响应的头部。

基础配置

配置描述

模块配置文件: conf/mod_header/mod_header.conf

配置项 描述
Basic.DataPath String
规则配置的的文件路径
Log.OpenDebug Boolean
是否开启 debug 日志
默认值False

配置示例

  1. [Basic]
  2. 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

配置示例

  1. {
  2. "Version": "20190101000000",
  3. "Config": {
  4. "example_product": [
  5. {
  6. "cond": "req_path_prefix_in(\"/header\", false)",
  7. "actions": [
  8. {
  9. "cmd": "REQ_HEADER_SET",
  10. "params": [
  11. "X-Bfe-Log-Id",
  12. "%bfe_log_id"
  13. ]
  14. },
  15. {
  16. "cmd": "REQ_HEADER_SET",
  17. "params": [
  18. "X-Bfe-Vip",
  19. "%bfe_vip"
  20. ]
  21. },
  22. {
  23. "cmd": "RSP_HEADER_SET",
  24. "params": [
  25. "X-Proxied-By",
  26. "bfe"
  27. ]
  28. }
  29. ],
  30. "last": true
  31. }
  32. ]
  33. }
  34. }

内置变量说明

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