Apache有select地将请求反向代理到新服务器

我正在将Web应用程序移动到不同数据中心中的一组新服务器。 作为testing期间的一部分,我想根据URL中的模式将旧服务器configuration为一些请求的反向代理

例如,如果有人要求:

http://old.example.com/foo/bar?q=1

…我想透明地给他们的结果

http://new.example.com/foo/bar?q=1

redirect不起作用,因为这被用作API,有些客户端没有正确地遵循redirect(固定客户端不是一个选项)。 而且,这需要同时适用于GET和POST请求。

要代理的URL列表将是有select性的,例如,以便只有"foo/*"请求将被代理,而其他代理将由old.example.com提供服务,直到最终切换。

mod_proxy正确的方式去? 我找不到任何看起来像这样的例子:

  1. 允许select性代理(例如/foo/bar代理,但/baz/ham不是),
  2. 通过整个path和查询string,和
  3. 保持POST正文和所有的HTTP标题。

任何帮助将不胜感激。

从你描述的一个简单的:

  ProxyPass /foo/ http://new.example.com/foo/ 

应该pipe用。 所有的头文件和GET / POST查询都应该正确转发。 根据您的设置和需要,您可能需要一个匹配的ProxyPassReverse 。 如果您需要更多的控制哪些URL代理,您可以使用:

  ProxyPassMatch [regex] [url] 

官方文档在解释事情方面做得相当不错。 如果您试图以这种方式进行代理,并且不能提供更具体的关于您所尝试的内容以及具体问题的具体问题的新问题,可能会为您带来更好的结果。