如何在 Apache 中处理两次请求

如何在 Apache 中处理两次请求

为了对新的后端服务器进行实际测试,我想处理所有 Apache 请求两次。

因此,只需使用旧服务器处理所有实时请求,就像现在所做的那样,然后将请求“复制”到不同的虚拟主机,新后端部署在该虚拟主机上,它将处理请求并记录响应。

在 Apache 中实现此目的的最佳/最简单的方法是什么?(后端是 FastCGI 进程)

答案1

我不知道您是否可以让 Apache “实时”地执行此操作 - 通常,Apache 中的所有内容都设置为仅处理一次给定的 URL。您可能能够在负载平衡器或网络设备层执行某些操作来执行此操作,只要您确保响应不会也发送到客户端...

另一种方法是保留一份非常完整的 Apache 日志,然后使用 JMeter 在测试服务器上重放它(http://jakarta.apache.org/jmeter/usermanual/component_reference.html#Access_Log_Sampler)我不认为你可以做 POST 有效负载,但除此之外,这是一个不错的方法。

答案2

我能想到的唯一方法是设置一个代理来复制请求并将其发送到第二个后端(然后记录/丢弃第二个后端的响应,因为我认为您不想将其发送给最终用户)。

如果你只是进行性能测试,那么这项工作将会非常繁重,而 Ernest 的 JMeter 建议或类似工具(Apache 的ab实用程序,负载运行器($) 或者一些简单的 Perl 脚本可能更好:您关心的是它如何处理峰值负载,以及峰值在哪里(即“与当前系统相比,它是否更快/更慢/相同,以及它能否处理更多/更少/相同的工作)。

如果您尝试对系统进行烟雾测试以暴露错误/问题,您真正想要构建和使用旨在暴露问题的测试套件,而不是依赖生产数据来暴露每个极端情况。

相关内容