Wiremock是否支持客户端-服务器模式?如何跨系统远程启动Wiremock Server?
Wiremock客户端-服务器模式支持及远程部署方法
首先明确回答你的两个问题:Wiremock完全支持客户端-服务器模式,而且我们可以通过两种方式实现“从客户端系统控制服务器上的Wiremock运行”——一种是管理已启动的远程Wiremock实例,另一种是触发服务器启动Wiremock进程。下面详细说明:
一、Wiremock的远程管理能力确认
Wiremock自带一套完整的REST管理API,默认启用。只要服务器上的Wiremock实例允许外部客户端访问,你就能从远程客户端系统完成各种操作:配置stub接口、查看请求日志、重置实例状态等。
默认情况下,Wiremock的业务请求端口和管理端口是同一个(默认8080),你也可以分开配置这两个端口,提升安全性。
二、从客户端控制服务器上的Wiremock运行
1. 远程管理已启动的Wiremock实例
第一步:在服务器上启动可远程访问的Wiremock
启动时需要指定允许外部访问的参数,建议分离管理端口和业务端口:
# 示例命令:指定业务端口8080,管理端口8081,允许跨域请求 java -jar wiremock-standalone-<你的版本号>.jar --port 8080 --admin-port 8081 --allow-origin "*"
--allow-origin "*":避免客户端发起API请求时出现跨域错误--admin-port:单独设置管理端口,和业务端口分离,降低安全风险
第二步:客户端通过管理API操作
客户端可以用任何HTTP工具(比如curl、Postman)调用管理API,举几个常用操作:
- 创建stub映射:发送POST请求到
http://<服务器IP>:8081/__admin/mappings,请求体为JSON格式的stub配置 - 查看所有请求日志:发送GET请求到
http://<服务器IP>:8081/__admin/requests - 重置所有stub和日志:发送POST请求到
http://<服务器IP>:8081/__admin/reset
2. 从客户端触发服务器启动Wiremock进程
如果你的需求是让客户端主动触发服务器启动Wiremock(而非管理已运行的实例),Wiremock本身没有提供直接的远程启动API,需要借助远程执行工具:
- 通过SSH远程执行命令:在客户端用SSH连接服务器,后台启动Wiremock:
用ssh <服务器用户名>@<服务器IP> "nohup java -jar /path/to/wiremock-standalone.jar --port 8080 --admin-port 8081 > wiremock.log 2>&1 &"nohup可以让Wiremock在后台持续运行,即使SSH断开也不会终止 - 使用自动化工具:比如Ansible、Jenkins这类工具,客户端可以通过它们向服务器发送启动任务
- 部署轻量触发服务:在服务器上搭一个简单的web服务(比如Python Flask),客户端发送请求后,服务内部执行Wiremock启动脚本
注意:服务器防火墙需要开放Wiremock的业务端口、管理端口(如果用SSH的话还要开放SSH端口),确保客户端能正常连通。
内容的提问来源于stack exchange,提问作者Preethi Ravi
相关产品推荐
相关产品推荐

