自定义响应码

更新时间:
复制 MD 格式

通过自定义响应码规则,在边缘安全加速 ESA边缘节点直接返回指定的 HTTP 响应码与响应页面,无需回源。

功能介绍

针对特定请求,客户希望返回非源站默认的 HTTP 响应。例如,统一拦截提示、维护页或临时跳转码。依赖回源处理会增加延迟和源站压力。自定义响应码规则在ESA边缘节点直接返回指定的 HTTP 响应码和响应页面,无需回源即可完成响应处理。

适用场景与功能选择

自定义响应码规则适用于直接在边缘返回固定响应码与页面的场景。以下表格帮助客户根据实际需求选择ESA中适用的功能:

需求

推荐功能

返回固定 HTTP 响应码与可选响应页面

自定义响应码规则(本功能)

改写请求路径、参数或重写响应体

重写规则

基于安全检测拦截或挑战请求

WAF 规则、自定义防护规则

边缘动态逻辑、复杂条件分支

边缘函数(Edge Functions)

应用场景

  • 自定义错误提示:将 404、500 等错误码替换为自定义页面,向用户展示友好的错误信息。

  • 临时维护拦截:在系统维护期间,对特定路径返回 503 状态码并展示维护页面。

  • 快速拦截恶意请求:匹配攻击特征后返回 403 并展示拦截提示页。

前提条件

  • 已添加域名并接入ESA

  • 使用响应页面功能前,需先创建自定义页面。创建后即可在规则中直接引用。

新增自定义响应码规则

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

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

  3. 转换规则页面选择自定义响应码页签,点击新增规则

  4. 新增自定义响应码页面,填写以下配置项后单击确定

    • 规则名称:自定义规则名,如my-rule

    • 传入请求类型:设置要匹配的用户请求特征,如主机名 等于 www.example.com

      也可以直接编辑表达式,如 (http.host eq "www.example.com")
    • 自定义响应码

      • 响应码:设置返回的 HTTP 状态码,取值范围为 200~599

      • 响应页面:从已创建的自定义页面下拉选择,默认值为无响应页面(仅返回响应码、不返回页面内容)

验证规则生效

  1. 使用 curl -I https://<客户域名>/<匹配路径> 或浏览器访问匹配该规则的请求。

  2. 确认返回的 HTTP 状态码与配置一致;如配置了响应页面,访问浏览器时应看到对应自定义页面内容。

示例中的 <客户域名><匹配路径> 为占位符,请替换为实际接入ESA的域名和命中规则的请求路径,去掉尖括号。

管理自定义响应码规则

在自定义响应码规则列表中,可以对已有规则进行以下操作:

  • 搜索规则:在列表顶部的搜索框中输入规则名称进行过滤查找。

  • 拖拽排序:拖动规则条目调整执行顺序,规则按从上到下的顺序依次匹配。

  • 启用/禁用:切换规则的启用状态。禁用后的规则不再生效,但配置保留。

  • 编辑规则:修改规则名称、匹配条件、响应码和响应页面等配置。

  • 删除规则:删除不再使用的规则。删除操作不可恢复,请谨慎操作。

注意事项

  • 规则匹配按列表从上到下的顺序执行,一旦匹配成功即返回响应,不再继续匹配后续规则。请合理安排规则的执行顺序。

  • 响应码取值范围为 200~599,覆盖了所有有效的 HTTP 状态码。请根据实际业务场景选择合适的响应码。

  • 多条自定义响应码规则按列表顺序匹配,命中第一条匹配规则后即返回响应。可在列表中通过排序位置调整规则优先级。自定义响应码规则与重写规则、安全规则属不同类型,相互独立生效。

  • 规则修改、新增或删除后,配置在边缘节点上实时生效,无需手动刷新。

规则未生效时的排查方向

  • 检查规则是否处于启用状态。

  • 检查规则顺序,多条规则按列表顺序匹配,靠前的规则优先命中。

  • 检查匹配条件是否覆盖了请求的路径、方法、来源等,确保实际请求能命中规则。