2012-03-20 37 views
1

我们的应用程序在不同的物理机器上部署了许多不同的模块。我们有一个Apache代理(mod_proxy),它将客户端请求转发到上下文路径上的关联机器。例如:http://dev.appserver/market/doSomeThing.htm将被转发到部署“市场”模块的tomcat。然后“市场”模块内的处理也可以通过Apache代理调用其他模块的服务来完成整个业务流程。使本地部署的模块轻松集成到集成环境中的过程

为了便于开发人员的开发,我们希望通过Apache的一些请求被转发给开发者本地PC,如果会话内容的用户名和用户名被配置为在数据库中转发。这里是简单的代码来演示这个想法:

forwardProcedure 
{  

    username = getUserName(session); // ex: Alex 
    contextPath = getContextPath(request); // ex: /market 

    toForwardUrl = getConfiguredForwardedUrl(username, contextPath); // get from database or whatever; 
    if (isNotEmpty(toForwardUrl)){ 
      forwardTo(toForwardUrl) ; // forward to local pc of developers   
    } else { 
      forwardToIntegrationServer(); // as normal. 
    } 
} 
// 

请问你能给我任何想法的工具来配置这个吗?集成环境是Unix,开发人员使用Windows。

在此先感谢!

+0

什么是“Apache代理”的东西? Apache HTTPD mod_proxy?或一些自定义应用程序 – 2012-03-20 02:23:19

+0

是的,它是“mod_proxy”。我在问题中更新了它。谢谢! – 2012-03-20 03:06:07

回答

0

Apache如何获得会话?会话在tomcat服务器上,而不是在Apache上。

这需要一个外部重写程序。也就是说,一个读取变量和内容并返回另一个url的程序。

如果您确实想尝试外部重写器方法,请阅读http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritemap并搜索“外部重写程序”。 使用[P]标志路由到mod_proxy。

+0

谢谢!我会检查一下并在稍后提供反馈。 – 2012-03-20 11:53:50