Apache ReverseProxy-将一些URL发送到另一台服务器进行预处理

Apache ReverseProxy-将一些URL发送到另一台服务器进行预处理,apache,apache2,reverse-proxy,httpd.conf,mod-proxy,Apache,Apache2,Reverse Proxy,Httpd.conf,Mod Proxy,现有的应用程序托管在Apache上。我想将一些URL(Post表单)发送到另一台服务器(不是apache,只是一个程序)进行一些预处理。这就是组织的方式 1) 我在ApacheConf上添加了一个额外的侦听端口(比如1234) 2) 在端口80上添加了一个反向代理,将一些URL发送到第二台服务器,该服务器在其自己的端口上侦听 3) 因为实际的html托管在apache上,所以第二台服务器在端口1234上从apache请求所需的页面。然后它修改html(post表单)并提供服务。它再次获取发布的数

现有的应用程序托管在Apache上。我想将一些URL(Post表单)发送到另一台服务器(不是apache,只是一个程序)进行一些预处理。这就是组织的方式

1) 我在ApacheConf上添加了一个额外的侦听端口(比如1234)

2) 在端口80上添加了一个反向代理,将一些URL发送到第二台服务器,该服务器在其自己的端口上侦听

3) 因为实际的html托管在apache上,所以第二台服务器在端口1234上从apache请求所需的页面。然后它修改html(post表单)并提供服务。它再次获取发布的数据并修改它并将其发送回apache

我可以通过以下步骤实现上述目标 1) 在我现有的htdocs目录结构中,我创建了两个名为dir1和dir2的新子目录

2) 所有需要预处理的表单,我移动到目录dir1。所有处理post数据的脚本,我移到dir2。我更改其他HTML以更新路径

3) 我添加了以下代理conf

ProxyPass/dir1http://localhost:1234/dir1

ProxyPassReverse/dir1http://localhost:1234/dir1

dir2也是如此

这很好,但我想知道这是否是一个更好的方法。
我正在寻找的主要改进是以这样一种方式进行反向代理配置,即我不会干扰htdocs中托管的原始应用程序(通过将内容移动到dir1、dir2-更新引用等)。有什么方法可以做到这一点吗?

您描述的设置背后的整个想法有些异国情调

我想知道为什么你不能简单地重写那些你想“截取”的表单的URL,并让请求或回复由一些脚本语言(如php或其他)处理。这样,您就不需要第二台服务器,不需要在原始应用程序布局中进行任何更改,而且apache内部有一个完善的脚本环境,而不需要使用外部程序

比如说:

get form-1.html 
=> deliver form-1.html 
=> submit form-1.html 
=> process form-1.html

get form-2.html 
!=> rewrite to intercept.php?form=form-2.html
=> intercept form-2.html for preparation
=> deliver intercepted form-2.html
=> submit form-2.html
!=> rewrite to intercept.php?form=form-2.html
=> intercept form-2.html for processing
=> process form-2.html

(form-1不会被截取,form-2会被截取)

我已经有了第二台服务器-将整个功能重写为php脚本是一项非常重要的任务。我的问题是如何将其与原始设置的最小更改集成。啊,好的。您仍然可以使用php作为包装器,并从那里调用“程序”,以避免在这种相当奇怪的设置中使用两台服务器的麻烦。但很明显,你处于一个更好的判断位置:-)