HProxy基于 HOST 的 HTTP 代理
說明
HProxy 是一個(gè)基于 HOST 的 HTTP 代理,它與普通代理的不同之處如下:
| 對(duì)比項(xiàng) | 普通代理 | HOST代理 |
|---|---|---|
| 需要客戶端支持 | 是 | 否 |
| 設(shè)置方式 | 配置客戶端 | 配置HOST |
| 支持透明代理 | 是 | 是 |
| 支持絕對(duì)路徑 | 是 | 否 |
| 支持非80端口 | 是 | 否 |
| 實(shí)現(xiàn)方式 | socket | http |
| URL路徑支持 | 絕對(duì)路徑 | 相對(duì)路徑 |
| 代理服務(wù)與客戶端同機(jī) | 支持 | 不支持 |
| 代理配置方式 | 域名配置靈活 | host配置不靈活 |
安裝
pip install git+https://github.com/five3/hproxy.git
使用
使用這個(gè)庫(kù)也很簡(jiǎn)單,它只接收一個(gè)參數(shù),用于指定插件腳本的路徑,可以是絕對(duì)路徑和相對(duì)路徑。插件文件樣例如下:
from plugins import before_proxy, after_proxy
@before_proxy
def before(context):
print(context)
@after_proxy
def after(context):
print(context)
插件腳本寫完后,執(zhí)行如下命令即可啟動(dòng)http代理服務(wù)。
hproxy -s /path/to/script.py
接著,在需要使用代理的機(jī)器上添加對(duì)應(yīng)的host,假設(shè)代理服務(wù)所在ip為10.0.0.1,需要代理www.testqa.cn域名。則添加如下:
10.0.0.1 www.testqa.cn
注意:代理服務(wù)和需要使用代理的機(jī)器不能是同一個(gè)ip,否則就死循環(huán)了。
最后,通過瀏覽器或者程序來訪問 www.testqa.cn 域名,則會(huì)看到插件腳本中打印的信息。
應(yīng)用
- mock
- api 測(cè)試
后期計(jì)劃
- 協(xié)程支持
- 過濾功能
- https 支持
- websocket 支持
- keep-alive 支持
- chunk 支持
評(píng)論
圖片
表情
