UNPKG

catproxy

Version:

a node proxy or host change tools

100 lines (67 loc) 4.79 kB
#catproxy > ​ 在工作中是否经常遇到这种情况,需要将cdn的host切换成本地测试,或者线上出现bug,需要修复时候需要将前端文件映射到本地,这个时候通常会用到代理工具 fiddler,或者charles。 > > ​ 无论charles或者fiddler都可以切换host。但是都只能将一个host完整的切换过去,并不能按照目录区分切换 ## 功能 - 完成页面资源从本地和服务器端映射 - 针对不同得资源做不同得ip映射 - 提供ui界面去修改映射关系 - 支持https的映射 > 其实本工具就是一个代理工具的变种,也属于重复的造轮子吧, > > 原理就是 在本地以80,443端口启动服务器,这个时候把host配置成127.0.0.1,这个host就归 工具接管,如果不配置任何规则,则指向在线资源 ## 使用帮助 1. 安装nodejs 2. 全局安装 `npm install catproxy -g` 3. 运行命令 `catproxy` mac,linux 需要sudo 4. 将需要映射到本地的**host改成127.0.0.1** 如 `127.0.0.1 baidu.com` 5. https 请求需要生成 并且安装证书 [https帮助](wiki/https.md) 6. 运行后会自动打开管理界面,在未配置任何cdn或者规则的情况下,会直接指向在线的资源 ### 使用参数说明 - ` catproxy -t http -p 80` 表示只启动 http代理,在80端口 - `catproxy -t https -p 443` 表示只启动https代理,在 443端口 - `catproxy -t all -p 80,443` 表示同时启动http和https代理在 80,443端口下 - `catproxy -c` 表示生成https的根证书 [https帮助](wiki/https.md) - `catproxy -h` 可以查看具体的说明适用 ### 界面操作说明 > 打开后得界面 > ![整体界面](wiki/img/ui_1.jpg) > 整个界面分为 导航菜单区域, 分组区域, 操作菜单, host列表区域 #### 导航区域 > ![导航区域](wiki/img/ui_2.jpg) > > 1. 下载host文件,即host的配置文件 > 2. 导入host配置文件,下载后得配置文件可以通过整个导入 > 3. 下载证书文件 > 4. 证书文件二维码,即可扫二维码去下载证书文件 > 5. 帮助 #### 分组区域 > ![分组区域](wiki/img/ui_3.jpg) > 分组区域是一个二级树列表,一级表示分组 二级表示分组下地host配置, 可以通过操作菜单中得 **新建** 创建新的分组 > 分组 在鼠标悬浮状态下,会有三个 icon 按钮 分别表示 删除, 禁止使用, 编辑 > 编辑将会 编辑当前分组的名称,禁止使用将会禁止当前分组下的所有规则, 删除将会删除当前分组 > 点击二级 host配置菜单,将会在 右侧的 host列表区域显示当前分组列表下地host配置,可以进行设置或者编辑 > 所有分组规则 **先匹配先执行** #### 操作菜单 > ![操作菜单](wiki/img/ui_4.jpg) > 操作菜单主要有新建分组,禁止所有分组 禁止缓存的功能 > 1. 禁止所有分组,即将所有分组都禁止,这个时候所有的 资源将会定位到在线 > 2. 禁止缓存,所有请求将会去掉缓存 > 3. 新建分组,新建一个分组菜单,可以选择一个分组的名称,和二级分组的名称,如下图所示 > ![新建分组](wiki/img/ui_5.jpg) > **所有修改必须点击保存,才能生效** #### host列表区域 > ![host列表区域](wiki/img/ui_6.jpg) > > > host列表区域可以 设置具体的规则 > 通过新建 按钮可以新建一个规则 > 所有得规则 源地址 可以是一个正则表达式,也可以是一个 url, **注意的是如果是 https协议则必须以 https开头否则会默认处理成http** > 规则类型总共有 4个类型 host, 本地文件,本地目录,远程文件,重定向 > 1. host,即将一个host地址指定到一个固定的ip下 如 源地址填写 http://163.com/test 目标地址填写 86.86.86.86 将会将 163.com/test目录下地都指定到86.86.86.86 的ip下,其他目录下还是会访问在线 > 2. 本地文件 如 源地址填写 http://163.com/test.js 目标地址填写 d:\\test\\test.js 将会将 http://163.com/test.js定位到本地 test的文件 > 3. 本地目录 如源地址填写 http://pimg1.126.net/cnd1/ 目标地址填写 d:\\test 将会在本地磁盘 test目录下寻找cdn1目录下对应目录对应的资源文件, 这里为了防止文件夹不匹配 引入虚拟路径的字段,虚拟路径配置表示本地不存在的一个路径,但是cdn路径中又使必须得完成匹配 > 4. 远程文件 如 源地址填写 http://163.com/test.js 目标地址填写 http://126.net/test.js 将会将 地址http://126.net/test.js的内容加载到 http://163.com/test.js下 > 5. 重定向 如源地址填写 http://qq.com 目标地址填写 http://163.com 将会将qq.com重定向到 163.com ## License **MIT**