我有一个客户端和 3 个服务器正在运行。假设客户端运行在
http://localhost:8000
其他三台服务器的运行速度为:
http://localhost:8001 ----->server1
http://localhost:8002 ------->server2
http://localhost:8003 --------->server3
这些服务器之间也有通信。我的问题是:
能否通过公布 Fiddler 的 IP 而不是实际的 server2 将其放置在 server2 的“前面”?如果可以,那么如何操作?
当 Fiddler 收到客户端的 POST 请求时,我想修改该消息然后将其转发给 server2?如何实现?
类似地,当响应从服务器2返回时,根据需要对其进行修改,然后再返回给客户端。
如果Fiddler代理服务器无法完成上述操作,请建议我使用其他可以帮助我的代理服务器。
答案1
虽然这不是 Fiddler 的标准用例,但它可以配置为反向代理。详细说明可以在Fiddler 文档,但基本上:
- 配置 Fiddler 接受远程连接
- 使用注册表项中命名的 DWORD 值设置目标服务器的端口号( ),
8002
然后重新启动 Fiddler。server2
ReverseProxyForPort
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Fiddler2
- 编写 FiddlerScript
OnBeforeRequest
规则来重写Host
传入请求的标头:
脚本:
if (oSession.host.toLowerCase() == "fiddlerserver:8888") oSession.host = "server2:8002";
我还将配置 Fiddler,以便它不会通过设置中“连接”选项卡下的“启动时充当系统代理”复选框自动代理机器上的所有请求。
您可以使用额外的 FiddlerScript 规则进一步修改任何 POST 请求。