如何在Apache中处理请求两次

为了执行一个新的后端服务器的现实testing,我想处理所有的Apache请求两次。

因此,简单地处理所有与旧服务器的活动请求,因为它现在完成,但是也将请求复制到不同的虚拟主机,新的后端部署在这里,这将处理请求并logging响应。

在Apache中实现这个最好/最简单的方法是什么? (后端是一个FastCGI进程)

我不知道你可以让Apache做到这一点 – 一般来说,Apache中的所有东西都被设置为只处理任何给定的URL。 您可能可以在负载平衡器或networking设备层执行此操作,只要您确保响应不会发送到客户端即可

另一种方法是保持一个真正完整的Apache日志,然后使用JMeter( http://jakarta.apache.org/jmeter/usermanual/component_reference.html#Access_Log_Sampler )在testing服务器上重播它。我不认为你可以做邮政有效载荷,但否则这是一个体面的方法。

我所能想到的唯一方法就是设置一个代理来欺骗请求并将其发送到第二个后端(然后logging/丢弃第二个后端的响应,因为我假设你不想发送给最终用户)。

如果你所做的只是一个性能testing,那么这是很多的工作,Ernest的JMeterbuild议或类似的东西(Apache的ab工具, LoadRunner ($)或者一些简单的Perl脚本可能更好:你关心的是它如何处理Peak负载,以及那个峰值的位置(即“比现在的系统更快/更慢/相同,并且可以处理更多/更less/相同的工作)。

如果您正在尝试对系统进行抽烟testing,以揭示您真正想要构build的错误/问题,并使用旨在揭示问题的testing套件,而不是依靠生产数据来公开每个angular落的情况。