如何根据login用户名redirect到不同的服务器?

我想要做的事似乎应该相当简单。 我想有一个外部地址,并根据用户使用的loginredirect到多个不同的内部服务器。

也就是说,给定用户u1,u2,u3和u4,我希望他们都login到www.domain.com ,并将用户u1和u2内部redirect到internal1.domain.com ,u3和u4redirect到internal4.domain.com

login用户也应该通过,以便内部网站知道哪个用户login。内部网站将不会在外部寻址。

我已经看了Perlbal ,这似乎允许一些我想要的,但我看不到任何选项来redirect基于login的用户。 Mod_proxy也似乎不允许这个级别的控制。

还有什么其他的select,或者我怎么能做出上述的select做我想要的?

实际上,Apache的mod_proxy可以完成你想要的function。

会话粘度从cookie值读取; 如果所有的应用服务器都知道用户需要去哪个服务器(我不太清楚用户分配是如何决定的,但是我们假定它是存储或可计算的),那么这很简单。

任何服务器都可以在第一个请求中为用户提供服务器cookie。 说apache把它们抛给internal1 ,但是它们应该在internal2 ; 该cookie可以是像SERVERID设置为server.internal2 。 在第二个请求中,使用下面的configuration,apache将看到cookie,并将用户发送到连接到cookie中定义的路由的BalancerMember后端。

 <Proxy balancer://domain> BalancerMember http://internal1.domain.com route=internal1 BalancerMember http://internal2.domain.com route=internal2 </Proxy> ProxyPass / balancer://domain/ stickysession=SERVERID ProxyPassReverse / balancer://domain/ 

那么我希望你有一些编程知识…

最简单的方法是使用基本的Web服务器,并使用PHP / MySQL创buildlogin脚本。

当用户login时,可以使用header(Locaction: internalx.domain.com); 将用户发送到不同的页面。

要保留用户数据,您可以简单地使用cookie或(更高级的)cookie或一次性链接到internal.domain.com服务器,并为站点使用相同的数据库。

你可以谷歌login脚本或要求在stackoverflow.com更多的信息。 但是我认为,既然你已经有了内部网站,你或者你认识的人都有编程经验。