HTTP 正向代理
正向代理和应用/Socks5 类似,都是以应用的形式实现。
启用端口

- 端口:填写用于开启 HTTP 正向代理服务的端口。
- 类型:选择 http_proxy。
添加应用

- 端口:前面步骤中启用的端口。
- 请求类型:需要代理的请求的类型,默认是 HTTP 及 HTTPS。
- 认证类型:支持 自定义认证及Proxy-Authorization: Basic。- 自定义认证:用户使用已解析好的 Proxy-Authorization、HTTP 头部、URI 参数、内置变量等内容进行灵活的认证。
- Proxy-Authorization: Basic:标准的基础代理认证。此时使用- 账号中的- 账号值和- 密码,作为 Basic 认证的- 用户名和- 密码;- 账号名将被忽略,但是鉴权条件不会被忽略。
 
添加鉴权账号

- 账号名:账号的关键字。例如 URI 参数:key1=value1&openresty=edge,此处openresty为账号名。Edge 的 HTTP 正向代理因此而支持动态的账号关键字。
- 账号值:鉴权账号。
- 密码:鉴权账号的密码。
- 开始时间/结束时间:账号的有效时间段。不设置表示不限制,账号会一直有效。
添加鉴权条件

鉴权条件的设计思路是:算术表达式,如:x = y。 x 是左参数,y是右参数,=是操作符。
- 名字:鉴权条件的名称/描述。
- 左算法:作用于左参数的算法。- md5: 对拼接后的左参数进行 MD5。
- 不选择:操作符不为 存在/不存在时,拼接所有左参数。
 
- 左参数:- 类型:参数所在的位置、类型。- URI 参数:参数所在的位置是 HTTP URI。
- Header 参数:参数所在的位置是 HTTP Header。
- Proxy-Authorization 参数:参数所在位置是 HTTP 头部的 Proxy-Authorization 中。支持 base64 编码。
- 内置参数:如账号对应的密码。
- 自定义值:
 
- 名称:参数的名称、值。
 
- 类型:参数所在的位置、类型。
- 操作符:指定左右值的比较方式。- 等于/不等于:对拼接后的左参数进行 算法得到值A, 对拼接后的右参数进行算法得到值B,然后比较A和B是否相等。
- 大于/小于/大于等于/小于等于:左右值计算和 等于/不等于相同,但是比较前会转换为数字类型再进行比较。(不支持字符串类型比较)
- 存在/不存在:逐个判断 左参数是否存在。
- 包含/不包含:左右值计算和 等于/不等于相同,然后判断左值是否包含右值。
- 落后当前时间:与当前时间进行比较,小于当前时间超过设定的值,就会执行下面 动作。
 
- 等于/不等于:对拼接后的左参数进行 
- 右算法:作用于右参数的算法。- md5: 对拼接后的右参数进行 MD5。
- 不选择:拼接所有右参数。
 
- 右参数:同 左参数。
- 动作:条件匹配后的动作。
- 响应状态码:HTTP 响应的状态码。
- 响应头部:HTTP 响应的头部。
- 响应内容:HTTP 响应的内容。
请求示例
示例 1:(HTTPS)
# https
CONNECT ifconfig.io:443 HTTP/1.1
Host: ifconfig.io:443
Proxy-Authorization: openresty=edge # 明文也可支持
示例 2:(HTTP)
# http
GET http://ifconfig.io HTTP/1.1
Host: ifconfig.io
arg1: value1
arg2: value2
arg3: value3
Proxy-Authorization: YjNCbGJuSmxjM1I1UFdWa1oyVT0=   # base64编码后的openresty=edge
示例 3:(Basic)
# http
GET http://ifconfig.io HTTP/1.1
Host: ifconfig.io
Proxy-Authorization: Basic YjNCbGJuSmxjM1I1UFdWa1oyVT0=  # base64编码后的openresty=edge