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