lack-proxy 用于给 Node 程序设置全局 HTTP 代理,可以将 Node 进程里面的指定 TCP 请求代理到 Whistle 等抓包调试代理。
- npm i --save-dev lack-proxy
建议在程序入口设置
- const lack = require('lack-proxy');
设置全局HTTP代理:
- lack.proxy({
- host: '127.0.0.1',
- port: '8899',
- // allowlist: ['ke.qq.com', '*.ke.qq.com'],
- // blocklist: ['fudao.qq.com', '*.fudao.qq.com'],
- // filterRequest: (options, isSocket) => {
- // return true || false;
- // }, // 可选,精确过滤请求
- // servername, // 可选,参见Node的HTTPS文档,设置SNI
- // headers, // 可选,设置代理请求头
- });
程序里面的所有web请求(HTTP、HTTPS、WebSocket)都会代理到本地的 8899 端口的代理服务
根据请求参数动态设置
- lack.proxy((options) => {
- // 根据请求options动态设置代理
- return {
- host: '127.0.0.1',
- port: '8899',
- headers: options.headers,
- // allowlist: ['ke.qq.com', '*.ke.qq.com'],
- // blocklist: ['fudao.qq.com', '*.fudao.qq.com'],
- // filterRequest: (options, isSocket) => {
- // return true || false;
- // }, // 可选,精确过滤请求
- // servername, // 可选,参见Node的HTTPS文档,设置SNI
- };
- });
有关例子可以参见测试用例。