应用管理

规则

规则在帽子云网关上处理进入应用的 HTTP 请求。你可以为应用开启 WebSocket、防盗链和跨域访问,也可以按域名、路径、方法等条件转发请求、改写请求头或响应头、返回重定向,无需修改应用代码。

入口:应用详情页 → 规则。静态网站、Web 应用(含 Docker 镜像部署)支持规则,PostgreSQL 和 Redis 应用不提供此入口。

页面结构

规则页面包含两个标签页,默认打开 全局配置:

标签页用途
全局配置配置应用级的 WebSocket、防盗链和跨域访问能力
自定义规则按请求条件管理反向代理、请求头重写、响应头重写和重定向规则

全局配置

入口:应用详情页 → 规则 → 全局配置。左侧选择功能,右侧编辑对应配置;左侧同时显示各项功能的 已开启 或 未开启 状态。

WebSocket

选择 WebSocket,打开 启用 WebSocket 后,网关允许该应用的 WebSocket 协议升级请求。应用自身也需要支持 WebSocket。

开关切换后立即保存,无需单独点击保存按钮。适用于在线聊天、实时通知等需要长连接的场景。

防盗链

防盗链根据请求头 Referer 中的来源域名放行或拦截请求,适用于限制其他网站直接引用图片、下载文件等资源。

  1. 左侧选择 防盗链,打开 启用防盗链。
  2. 按需要设置 允许空 Referer 访问,选择名单类型并填写域名。
  3. 点击 保存配置。关闭防盗链也需要点击此按钮保存。
字段填写说明
允许空 Referer 访问开启后,请求未携带 Referer 时直接放行。直接输入网址或使用部分客户端访问时可能没有 Referer
名单类型:白名单放行名单中的来源域名,拦截其他来源
名单类型:黑名单拦截名单中的来源域名,放行其他来源
白名单域名 / 黑名单域名一行一个域名,支持通配符,例如 example.com、*.example.com。启用防盗链时至少填写一个域名

例如,只允许自己的网站引用资源,可以选择 白名单,填写:

example.com
*.example.com

如果还需要允许用户直接打开资源地址,可同时开启 允许空 Referer 访问。未填写域名时,保存会提示“请至少配置一个域名”。

跨域访问

跨域访问用于控制其他网站在浏览器中访问当前应用资源时的 CORS 策略。选择 跨域访问,打开 启用跨域访问 后,选择访问模式:

模式适用场景配置方式
公开访问不携带凭证的公开资源允许来源为 *,不允许携带凭证;预检缓存时间为 86400 秒
指定来源允许指定网站访问资源填写允许来源,允许携带凭证;预检缓存时间为 86400 秒
自定义需要限制方法、请求头或调整凭证与缓存策略填写允许来源,并设置下表中的字段

允许来源一行一个,填写包含协议的完整来源,可带端口;界面也支持填写 *。例如:

https://www.example.com
https://admin.example.com
https://www.example.com:8443

来源只包含协议、域名和可选端口,不需要填写 /api 等路径。协议或端口不同会被浏览器视为不同来源。需要携带 Cookie 等凭证时,应使用明确的来源地址。

自定义模式还提供以下字段:

字段填写说明
允许方法可选择 GET、POST、PUT、DELETE、OPTIONS,至少选择一个
允许请求头允许跨域请求携带的 Header 名称,多个名称用逗号分隔,例如 Content-Type, Authorization
暴露响应头允许浏览器脚本读取的响应 Header,多个名称用逗号分隔,例如 X-Request-Id
允许携带凭证选择 允许 或 不允许,控制浏览器跨域请求是否可携带 Cookie 等凭证
预检缓存时间以秒填写,界面初始值为 3600。用于浏览器缓存 CORS 预检结果

页面下方提供 响应 Header 预览,展示 Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers、Access-Control-Expose-Headers、Access-Control-Allow-Credentials 和 Access-Control-Max-Age。

配置完成后点击 保存配置,关闭跨域访问也需要保存。指定来源或自定义模式未填写来源时,会提示“请至少配置一个允许来源”;自定义模式未选择方法时,会提示“请至少选择一个允许方法”。

note

CORS 控制浏览器的跨域访问行为,业务接口仍需自行处理鉴权。若为整个应用配置跨域策略,优先使用这里的跨域访问;仅需按路径等条件设置响应头时,可使用响应头重写规则,并避免重复配置同名 CORS 响应头。

保存配置

WebSocket 切换开关即保存;防盗链和跨域访问需要点击各自的 保存配置。保存期间按钮显示“保存中...”,成功后提示“保存成功”;保存失败时页面会显示错误提示。配置由网关处理,无需重新部署应用。

自定义规则

入口:应用详情页 → 规则 → 自定义规则。左侧选择规则类型,右侧显示该类型的规则数量和列表;点击右上角 添加对应规则 按钮打开配置抽屉。

自定义规则列表

上图为旧版规则列表,供查看规则类型时参考;当前版本请先切换到 自定义规则 标签页。

类型作用典型场景文档
反向代理规则按匹配条件转发请求到上游节点/api 转发到后端服务器;接入第三方服务反向代理规则
请求头重写在转发前设置、增加或删除请求头给上游传递标识、去掉敏感头请求头重写
响应头重写在返回前设置、增加或删除响应头按条件设置跨域头、缓存控制、安全头响应头重写
重定向规则命中后返回 HTTP 重定向到目标地址旧域名跳新域名、旧链接跳新链接重定向规则

通用字段

每条自定义规则都包含:

  • 规则名称:必填,1 ~ 30 个字符,例如 API 转发。
  • 匹配规则:选择 匹配所有请求 时对所有请求生效;选择 自定义筛选 时只对满足条件的请求生效。
  • 规则配置:不同类型的具体配置,参见对应的规则文档。

填写完成后点击 添加 或 保存。保存成功后抽屉关闭,规则在网关中生效,无需重新部署应用。点击 取消 关闭抽屉,不保存本次修改。

匹配条件

选择 自定义筛选 后,每一行是一个条件,由 匹配字段、运算符 和 值 组成。GET 参数、POST 参数和 Cookie 参数还需要在 参数值 一列填写参数名。

条件组合

  • 行右侧的加号在同一组内增加条件,减号删除条件。同一组内的条件需要同时满足(且)。
  • 点击 或者 新增一个条件组。多个组之间满足任意一组即可(或)。
  • 自定义筛选至少需要一组条件,每组至少保留一条完整条件。无需筛选时请选择 匹配所有请求。

例如:组 1 为“请求路径 开头是 /api”且“请求方法 等于 POST”,组 2 为“主机名 等于 api.example.com”。请求满足组 1 或组 2 都会命中。

匹配字段与运算符

匹配字段说明可用运算符值示例
主机名(域名)请求的 Host字符串运算符*.maoziyun.com
完整 URL路径和查询参数字符串运算符/api/user?id=1
请求路径不含查询参数的路径字符串运算符/api
请求方法HTTP 方法等于、不等于、包含以下各项、不包含以下各项GET、POST、PUT、PATCH、DELETE、OPTIONS
文件后缀请求路径的扩展名包含以下各项、不包含以下各项输入后按回车,如 jpg、png,最多 50 个
国家/地区根据客户端 IP 识别的国家或地区等于、不等于、包含以下各项、不包含以下各项中国、美国
GET参数URL 查询参数字符串运算符、小于、大于、存在、不存在参数值 lang,值 en
POST参数表单参数同 GET参数参数值 type,值 vip
Cookie参数Cookie 中的字段同 GET参数参数值 ab_test,值 b

字符串运算符:等于、不等于、通配符、包含、不包含、开头是、开头不是、结尾是、结尾不是。

  • 通配符使用 * 匹配任意字符,例如 *.example.com、/static/*。
  • 小于 / 大于的值必须是数字。
  • 存在 / 不存在只判断参数是否存在,无需填写值,参数名仍需填写。

执行顺序

  • 在当前规则类型的列表中,规则按从上到下的顺序匹配。拖动规则左侧的图标可以调整同类型规则的顺序。
  • 新建的规则默认添加到该类型列表末尾并启用。
  • 更具体的规则(如 /api/v2)建议放在更宽泛的规则(如 /api)前面。

启用、编辑和删除

  • 每条规则右侧的开关可以随时 启用 或 关闭,关闭后规则保留但不生效。
  • 点击编辑按钮打开配置抽屉,修改后点击 保存。
  • 删除规则需要确认,删除后不可恢复。如果只是临时停用,建议关闭开关。

列表中每条规则会显示摘要,例如 1 组匹配 · 2 个节点 · HTTP。

更新于

此页面是否有帮助?