mod_header

模块简介

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

基础配置

配置描述

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

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

配置示例

  1. [Basic]
  2. DataPath = mod_header/header_rule.data

规则配置

配置描述

配置项描述
VersionString
配置文件版本
ConfigObject
各产品线的 Header 规则
Config{k}String
产品线名称
Config{v}Object
产品线下的 Header 规则列表
Config{v}[]Object
Header 规则详细信息
Config{v}[].CondString
描述匹配请求或连接的条件, 语法详见Condition
Config{v}[].LastBoolean
如果规则条件匹配成功后,是否继续匹配下一条规则
Config{v}[].ActionsObject
匹配成功后的动作
Config{v}[].Actions.CmdString
匹配成功后执行的指令
Config{v}[].Actions.ParamsObject
执行指令的相关参数列表
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_nameBFE实例地址
%bfe_cluster目的后端集群
%bfe_backend_info后端信息
%bfe_ssl_resume是否TLS/SSL会话复用
%bfe_ssl_cipherTLS/SSL加密套件
%bfe_ssl_versionTLS/SSL协议版本
%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