![将请求并行代理到两个端点](https://linux22.com/image/705840/%E5%B0%86%E8%AF%B7%E6%B1%82%E5%B9%B6%E8%A1%8C%E4%BB%A3%E7%90%86%E5%88%B0%E4%B8%A4%E4%B8%AA%E7%AB%AF%E7%82%B9.png)
有没有办法使用像 nginx、mod_proxy、haproxy 或类似的东西来让其并行将请求代理到两个不同的 Web 服务器?
我有一台服务器,就像当前活动的服务器,还有一台“新”服务器,我想确保在切换之前“新”服务器与当前“活动”服务器的工作方式相同。因此,代理应将所有请求发送给这两个服务器,然后忽略“新”服务器的回复。
答案1
这是一种测试新服务器的奇怪方法。您将无法在浏览器中看到请求的结果。该工具必须调用两个服务器并比较结果,将响应传递给调用者,并以某种方式向您报告其结果。
您最好使用某种自动化测试工具,也许还有负载测试工具。JUnit、Selenium 和 Helium 是测试工具的示例。JMeter 和 ab(apache 基准)是有用的负载测试工具。
还有一些重播日志的方法,可能对你有用。Google 会找到选项。
答案2
正如 Tim 所说,这绝对不是测试新服务器的好方法。一种可能的替代方案是依赖 haproxy 健康检查。
在新服务器中设置一个健康检查页面(监视器),如果一切正常,则返回 200,否则将返回另一个 HTTP 代码。然后在 haproxy 中使用以下配置:option httpchk /monitor