Skip to content

mod_header

Introduction

mod_header modifies header of HTTP request/response based on defined rules.

Module Configuration

Description

conf/mod_header/mod_header.conf

Config Item Description
Basic.DataPath String
Path of rule configuration
Log.OpenDebug Boolean
Debug flag of module

Example

[Basic]
DataPath = mod_header/header_rule.data

Rule Configuration

Description

conf/mod_header/header_rule.data

Config Item Description
Version String
Version of config file
Config Struct
Header rules for each product
Config{k} String
Product name
Config{v} Object
A ordered list of rules
Config{v}[] Object
A rule
Config{v}[].Cond String
Condition expression, See Condition
Config{v}[].Last Boolean
If true, stop processing the next rule
Config{v}[].Actions Object
A list of Actions
Config{v}[].Actions.Cmd String
A Action
Config{v}[].Actions.Params Object
A list of parameters for action
Config{v}[].Actions.Params[] String
A parameter

Actions

Action Description Parameters
REQ_HEADER_SET Set request header HeaderName, HeaderValue
REQ_HEADER_ADD Add request header HeaderName, HeaderValue
REQ_HEADER_DEL Delete request header HeaderName
RSP_HEADER_SET Set response header HeaderName, HeaderValue
RSP_HEADER_ADD Add response header HeaderName, HeaderValue
RSP_HEADER_DEL Delete response header HeaderName

Example

{
    "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
            }
        ]
    }
}

Builtin Variables

BFE provides a list of variables which are evaluated in the runtime during the processing of each request. See the Example above.

Variable Description
%bfe_client_ip Client IP
%bfe_client_port Client port
%bfe_request_host Value of Request Host header
%bfe_session_id Session ID
%bfe_log_id Request ID
%bfe_cip Client IP (CIP)
%bfe_vip Virtual IP (VIP)
%bfe_server_name BFE instance address
%bfe_cluster Backend cluster
%bfe_backend_info Backend information
%bfe_ssl_resume Whether the TLS/SSL session is resumed with session id or session ticket
%bfe_ssl_cipher TLS/SSL cipher suite
%bfe_ssl_version TLS/SSL version
%bfe_ssl_ja3_raw JA3 fingerprint string for TLS/SSL client
%bfe_ssl_ja3_hash JA3 fingerprint hash for TLS/SSL client
%bfe_http2_fingerprint HTTP/2 fingerprint
%bfe_protocol Application level protocol
%client_cert_serial_number Serial number of client certificate
%client_cert_subject_title Subject title of client certificate
%client_cert_subject_common_name Subject Common Name of client certificate
%client_cert_subject_organization Subject Organization of client certificate
%client_cert_subject_organizational_unit Subject Organizational Unit of client certificate
%client_cert_subject_province Subject Province of client certificate
%client_cert_subject_country Subject Country of client certificate
%client_cert_subject_locality Subject Locality of client certificate