Skip to content

proxy (http-proxy)

proxy(或 http-proxy)指令用于将匹配的请求通过指定的 HTTP 代理服务器转发。两个指令名称功能完全一致,可互换使用。

规则语法

txt
pattern proxy://ipOrDomain[:port] [filters...]
# 等效写法:
pattern http-proxy://ipOrDomain[:port] [filters...]

port 可选,不填则使用默认端口 80

参数描述详细文档
pattern匹配请求 URL 的表达式匹配模式文档
valueIP + 可选端口 或域名 + 可选端口
⚠️ 不支持从文件/远程 URL 加载数据
操作指令文档
filters可选过滤器,支持匹配:
• 请求URL/方法/头部/内容
• 响应状态码/头部
过滤器文档

配置示例

txt
# 将请求代理到 HTTP PROXY: `127.0.0.1:80`
www.example.com/path proxy://127.0.0.1 # 默认端口 80

# 将当前域名的所有请求代理到 HTTP PROXY: `127.0.0.1:8080`
www.example.com proxy://127.0.0.1:8080

# 也可以用域名
www.example.com/path proxy://test.proxy.com # 默认端口 80
www.example.com proxy://test.proxy.com:8080

高级用法

将请求代理到上游代理后,默认情况下上游代理会根据请求的域名通过 DNS 获取服务器 IP 再继续请求,如果想让上游代理根据指定 IP及端口继续请求,可以这么处理:

txt
# 通过查询参数
www.example.com proxy://127.0.0.1:8080?host=1.1.1.1
www.example.com proxy://127.0.0.1:8080?host=1.1.1.1:8080

# 通过指令启用
www.example.com proxy://127.0.0.1:8080 1.1.1.1 enable://proxyHost
www.example.com proxy://127.0.0.1:8080 1.1.1.1:8080 enable://proxyHost

1.1.1.1 等价于 host://1.1.1.1

与 host 的匹配优先级

默认行为

当请求同时匹配 hostproxy 规则时:

  • host 规则生效
  • proxy 规则自动忽略

修改优先级

配置方式语法效果
优先 proxyenable://proxyFirstlineProps://proxyFirstproxy 生效(覆盖 host)
同时生效enable://proxyHostlineProps://proxyHostproxyhost 同时生效

使用建议

  • 大多数场景使用默认行为即可
  • 需要特殊代理逻辑时才使用 proxyFirst
  • 需要双重匹配时使用 proxyHost