修改入站请求头

更新时间:
复制为 MD 格式

通过配置对来自客户端或上游的特定请求标头进行修改、添加、删除的行为,您可以根据后端服务需求(如添加 Accept-EncodingAccept-Language 等标头)灵活控制请求内容,从而进一步自定义网站访问者的体验并深入了解其使用行为。

功能介绍

通过边缘安全加速 ESA的修改入站请求头功能,您可以在边缘节点对客户端的原始请求进行处理,灵活地添加、变更或删除指定的请求头。这使您能够实现精细化的回源路由控制、丰富后端日志信息、并清理无关的请求头数据,从而增强业务灵活性与安全性。

image

配置入站请求头

新增规则后,当用户发起资源访问请求时,ESA将根据规则的生效优先级依次进行匹配与执行。

  1. ESA控制台,选择站点管理,在站点列单击目标站点。

  2. 在左侧导航栏,选择规则 > 转换规则

  3. 单击修改请求头页签,选择客户端到ESA项,单击新增规则

    image

  4. 新增修改请求头规则区域,填写:

    • 规则名称:填写自定义规则名称

    • 如果请求匹配以下规则...:选择该规则将匹配的请求特征。

      • 所有传入请求:表示该规则将应用于当前站点下的所有请求。

      • 自定义规则:表示该规则仅应用于与自定义表达式匹配的流量。可以通过控件组合配置自定义的流量筛选条件。

    • 修改请求头:表示符合特征的请求将执行的动作。

      操作方式

      类型

      说明

      示例

      添加

      静态

      • 在回源请求中添加指定请求头。

      • 如果客户端请求中已经包含了同名请求头,则新添加的请求头将会覆盖客户端请求中的同名请求头。

      增加名称为x-code,值为key1的请求头,请填写:

      • 请求头名称x-code

      • 请求头值key1

      动态

      请求头值支持设置为一个表达式

      增加名称为True-Client-IP,值为ip.src的请求头,用于记录客户端的真实IP地址,请填写:

      • 请求头名称True-Client-IP

      • 请求头值ip.src

      变更

      静态

      在回源请求中变更指定请求头的值。

      修改回源请求中名称为x-code的请求头的值为key2,请填写:

      • 请求头名称x-code

      • 请求头值key2

      动态

      请求头值支持设置为一个表达式

      修改回源请求中名称为True-Client-IP的请求头,值为ip.src,将请求头的值变更为客户端的真实IP地址,请填写:

      • 请求头名称True-Client-IP

      • 请求头值ip.src

      删除

      在回源请求中删除所有与请求头名称匹配的参数值,无论是否有重复的请求头参数。

      删除名称为x-code的请求头,请填写请求头名称x-code

    说明
    • 禁止配置以ali-或者Ali-开头的请求头名称

    • 请求头值中可以配置多个值,用英文逗号,分隔。

    • 删除操作不区分静态模式和动态模式,效果一致。

    • 变更是对已存在的请求头进行修改,仅在原始请求头中存在对应名称的请求头时,变更操作才会生效。

    • 同一条规则配置中,如果存在多个操作配置,则这些操作将会顺序执行,存在名称相同的请求头的情况下,后面的操作将会覆盖前面的操作。

动态表达式配置示例

添加客户端真实IP地址

场景

为所有请求添加用于记录客户端的真实IP地址的请求头。

操作步骤

  1. ESA控制台,选择站点管理,在站点列单击目标站点。

  2. 在左侧导航栏,选择规则 > 转换规则

  3. 单击修改请求头页签,选择客户端到ESA项,单击新增规则

    image

  4. 新增修改请求头规则区域,填写:

    • 规则名称:填写自定义规则名称add-client-ip-in

    • 如果请求匹配以下规则...:选择所有传入请求,表示该规则将应用于当前站点下的所有请求。

    • 修改请求头

      • 类型动态

      • 操作方式添加

      • 请求头名称True-Client-IP-IN

      • 请求头值ip.src

    image

效果验证

配置前:不携带客户端真实IP。

image

配置后:通过true-client-ip-in标头携带客户端真实IP。

image

添加客户端IP地址对应国家代码

场景

为所有来自非中国香港的请求添加用于记录客户端IP地址对应国家代码的请求头。

操作步骤

  1. ESA控制台,选择站点管理,在站点列单击目标站点。

  2. 在左侧导航栏,选择规则 > 转换规则

  3. 单击修改请求头页签,选择客户端到ESA项,单击新增规则

    image

  4. 新增修改请求头规则区域,填写:

    • 规则名称:填写自定义规则名称add-client-country

    • 如果请求匹配以下规则...:选择自定义规则,填写国家/地区 不等于 中国香港

      也可直接编辑表达式如下:(ip.geoip.country ne "HK")
    • 修改请求头

      • 类型动态

      • 操作方式添加

      • 请求头名称IP-Country-Code

      • 请求头值ip.geoip.country

    image

效果验证

配置前:不携带客户端IP对应的国家信息。

image

配置后:通过ip-country-code标头携带客户端IP对应的国家代码。

image

添加客户端IP地址对应省份代码

场景

为访问URI/content的请求添加用于记录客户端IP地址对应省份代码的请求头。

操作步骤

  1. ESA控制台,选择站点管理,在站点列单击目标站点。

  2. 在左侧导航栏,选择规则 > 转换规则

  3. 单击修改请求头页签,选择客户端到ESA项,单击新增规则

    image

  4. 新增修改请求头规则区域,填写:

    • 规则名称:填写自定义规则名称add-client-province

    • 如果请求匹配以下规则...:选择自定义规则,填写URI路径 等于 /content

      也可直接编辑表达式如下:(http.request.uri.path eq "/content")
    • 修改请求头

      • 类型动态

      • 操作方式添加

      • 请求头名称IP-Province-Code

      • 请求头值ip.src.subdivision_1_iso_code

    image

效果验证

配置前:不携带客户端IP对应的省份信息。

image

配置后:通过ip-province-code标头携带客户端IP对应的省份代码。

image

相关文档

规则相关的功能,在生效优先级、可重入性、生效颗粒度上存在差异,详细情况请查看规则相关功能的特性说明