Skip to content

liyangready/multiple-host

Repository files navigation

新版本正在开发中,感谢大家支持!会提升稳定性和便捷性。

Multiple-host

下载地址: 私人主机-win版 私人主机-mac版 百度云

无论你是开发、QA还是产品,在目前的开发及测试中都离不开host。host为开发和测试带来了诸多便利,但也有很多烦恼:

  • 切换host总是不能立即生效,换一套host环境经常需要重启浏览器。
  • 经常在一套host环境下比如(betaA)想对比一下线上的情况,做不到。
  • 由于经常在多套host环境中切换,导致系统host环境乱七八糟,发现问题都不确定到底在哪套环境下。

multiple-host就是为了解决烦人的host问题而诞生的 , 它采用了 沙箱机制,在一个独立的浏览器进程中使用host。

它可以做什么

  • 打开一个使用虚拟host环境的浏览器,不受系统host影响。
  • 改了host刷新就生效,再也不用重启浏览器了。
  • 实时显示当前页面的host情况,在哪套环境下一清二楚。
  • 正常浏览器不受任何影响,从而轻松实现两个浏览器,一个看线上,一个看beta的功能。

效果图:

multiple-host是一个应用程序,解压缩点击运行即可。

1 点击,mac用户是app应用,windows是exe,得到如下运行界面:

程序左侧有四个功能:

分别是 开始使用日志输出代理host设置程序设置

开始使用

开始就是唤起浏览器的入口,如下展示,当前提供了唤起chrom、唤起firefox和其他浏览的功能。

chrome

比如点击唤起chrome,会打开一个chrome,在这个chrome中的所有访问都不受系统host影响,只受虚拟host影响,虚拟host的设置在 代理host一栏。同时,你通过正常手段打开的chrome不受这个影响,只受系统host影响,从而你可以给正常chrome配一套host环境,给从程序中打开的chrome配另一套虚拟的host环境。

firefox

打开firefox和打开chrome同理,可以打开一个只受虚拟host影响的firefox。

ie及其他

由于某些原因,不是所有的浏览器都可以实现打开两个互不影响的实例(如ie),而且其实我们也不需要所有的浏览器都要用两套环境去做对比,但是我们想要测试其他浏览器比如ie的时候,也想用虚拟host怎么办?

可以打开系统代理,让所有的请求都受这个虚拟host的影响,windows用户我提供了一个快捷的方式,可以一键配置和关闭系统host,mac用户由于权限问题,暂时需要自己去 设置。设置了系统代理之后,所有的浏览器都可以享受到虚拟host的配置,而且是事实生效的。

代理host设置

代理host设置我用react写了一个支持多环境切换的host工具,支持筛选、一键启用等功能,从而可以轻松管理虚拟host。

日志输出

日志输出用于实时打印当前的host情况,当请求被host处理过时,就会打印出一条日志显示当前请求被指向了哪个host,从而让你清晰的知道当前处于哪套环境。

设置

设置非常简单,如果你的chrome和firefox没有安装在C盘,需要你在设置中调整一下chrome和firefox的启动路径。

如果9393端口被你的其它程序占用,你也可以在设置中更改代理端口。

常见问题

Q:移动端能否借用这个host工具?

A:和charles等工具使用方法一样,将手机的请求代理指向本机ip:9393 端口,即可使用。如果还需要配合charles,参加下述的和charles共存。

Q:使用了multiple-host,还想用nginx怎么办?

A: multiple-host根据host转发请求的时候并没有修改http header中的 Host name,只是修改了请求的ip,nginx一般是通过host name设置规则,并不受影响。

Q:使用了multiple-host,还想用fiddler怎么办?

A: multiple-host和fiddler原理一样,都是起了一个代理server转发请求,想要虚拟host生效的同时fiddler也生效,必须实现multiple-host是fiddler的上游,也就是实现 请求-> fiddler -> multiple-host -> server 的链。好在fiddler提供了这样的功能。

使用步骤:

  • 打开multiple-host的系统代理。
  • 打开fiddler
  • 使用正常浏览器(不是通过multiple-host唤起的浏览器)访问

你会发现fiddler可以正常记录所有请求,同时虚拟host也会生效。

如果上述步骤没有成功,检查fiddler的 Tools -> Fiddler Options -> GateWay 中是否选上了默认的 Use System Proxy

Q:使用了multiple-host,还想用charles怎么办?

A: 同fiddler类似,charles和multiple-host共存也需要实现 请求-> multiple-host -> charles -> server 的链。 具体配置在charles:

  • Proxy - External Proxy Settings
  • 勾选 Use external proxy server
  • 配置 http 和 https 请求的地址为 :127.0.0.1:9393 (端口号默认为9393,修改过则不一样)

然后将你的浏览器/手机代理指向charles(默认为本机ip:8888),刷新发现请求会被charles采集到,同时,我们的host工具也可以生效。

Q:有bug或者出了新功能怎么更新?

A: multiple-host实现了一套自动更新机制,当有更新时会自动推送,用户点击确定更新之后,multiple-host会自动下载和覆盖当前目录的程序。

PS: 由于私人主机位于海外,如果更新过慢或者失败,可手动下载最新版,由于multiple-host并不需要按照,删除或者覆盖原来的文件夹就行了

1.0.6 修复删除default host引起的问题

1.0.5 设置默认的host

1.0.1-1.0.4 琐碎bug修复

1.0.0 UI风格大改版,利用react+redux构建可用性更强的UI

About

虚拟host解决方案,轻松实现两套host环境

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages