前言
在本地调试过程中通常我们会在调试阶段通过 proxy 代理到服务端进行联调。不过也有一些情况我们只能通过服务端的 ip 进行联调,比方说暂时没有申请域名只有同一个 ip 地址能够携带 cookie 身份信息的情况。那么就需要我们能够在本地访问服务端 ip 联调接口,而将其他所有请求都代理到本地的能力。
这里我们使用 switchyOmega 来做代理, whistle 来做转发,因为其基于浏览器,跨平台,mac 端用 charles 应该也可以做。
本文参考: whistle配置
1. 安装whistle
tnpm i whistle -g
安装成功后运行启动命令:
w2 start
一些别的命令:
# 关闭命令:
w2 stop
# 重启命令:
w2 restart
# whistle默认端口是8899,修改端口号命令:
w2 start -p 8008
# 帮助命令:
w2 help
启动后命令行中如下所示:
会开启一个本机地址的服务,打开链接页面,如下:
如果需要抓取 https 请求,点击 HTTPS 选项,下载安装一下https证书,证书安装到受信任的根证书下。
2. 浏览器配置代理
可以使用 chrome 浏览器扩展程序 Proxy switchyOmega,switchyOmega 安装方式:
- 直接打开 chrome 网上应用商店下载安装(能访问外网)
- https://github.com/FelisCatus/SwitchyOmega/releases
下载后改下文件后缀名解压, chrome浏览器打开扩展程序 chrome://extensions/
,打开开发者模式开关,加载解压后的 switchyOmega
包,如果无法安装尝试另存为.zip,然后再拖进去。如下图:
配置 switchyOmega
,端口为wshitle
启动的端口:
这个时候打开whsitle
页面控制台,可以看到已经能抓取请求了。
3. 配置转发规则
为方便我们后续配置规则,我们先本地起服务:
tnpm run devs
比方说我们本地的地址是 8000端口。
这里假设我们的服务端 ip ,我们需要配置转发规则为:
- 只有
/api/
开头(即接口)的请求转发到服务器 ip ,其他需要转发的前缀看业务情况配置。 - 其他请求一律转发到本机地址。
效果就是访问远程 ip 就和访问本地一样,不同的是接口都转发到远端。一个典型配置如下:
然后访问服务端 ip,将 switchyOmega 的对应 ip 的配置设置为 proxy,如果不想走代理可以切换到直连。
这样就能够代理到本地了,如果不确定是否真的连到本地,可以在本地改些东西确认一下是否变化。