Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于HTTP主体的Apache反向代理ProxyPass_Apache_Soap_Reverse Proxy - Fatal编程技术网

基于HTTP主体的Apache反向代理ProxyPass

基于HTTP主体的Apache反向代理ProxyPass,apache,soap,reverse-proxy,Apache,Soap,Reverse Proxy,我有一些系统向我的Apache反向代理发出SOAP请求,我有两个不同的应用程序来处理这些请求。但是,区别是在请求的SOAP主体上完成的: 只要传入请求的正文中包含特定的XML标记,就将其发送到服务器\ a:port/endpoint 只要传入请求的正文中不包含特定的XML标记,就将其发送到服务器_b:port/endpoint 请注意,传入的请求URL是相同的。唯一的区别是传入请求的实际SOAP主体 通过检查传入的请求URL POST参数(),我已经找到了实现这一点的方法,但找不到确切需要的

我有一些系统向我的Apache反向代理发出SOAP请求,我有两个不同的应用程序来处理这些请求。但是,区别是在请求的SOAP主体上完成的:

  • 只要传入请求的正文中包含特定的XML标记,就将其发送到服务器\ a:port/endpoint
  • 只要传入请求的正文中不包含特定的XML标记,就将其发送到服务器_b:port/endpoint
请注意,传入的请求URL是相同的。唯一的区别是传入请求的实际SOAP主体

通过检查传入的请求URL POST参数(),我已经找到了实现这一点的方法,但找不到确切需要的内容


你会怎么做呢?Apache真的能做到这一点吗?

我不确定Apache是否能做到这一点。但您可以使用Nginx和Lua模块来实现这一点

使用Lua模块,您可以通过编程方式处理请求、响应和请求体


另外,对于反向代理,最好使用Nginx,因为它为反向代理、负载平衡提供了方便和更好的配置。

我假设您在请求后正文中询问了匹配问题。我认为这在Apache中是不可能的。nginx或许可以做到这一点。你想做的有点奇怪。你应该尝试用另一种方式来解决你的整体问题。这需要编写一个插件来预读正文,用mod_请求保存它,并使用mod_重写类型的东西来修改要动态代理的请求