我正在寻找反向代理解决scheme:
a)让我明确地定义哪些请求根据正则expression式(或者某些其他类似的方式来定义某些URL模式被映射到某些后端服务器)
要么
b)支持代理的某种哈希algorithm,以便对给定URL的请求总是映射到一个特定的服务器, 并发布该algorithm,以便我可以在我的应用程序中使用它来确定给定的URL将被映射到哪个服务器。
有这样的事吗? 或者我必须写我自己的…?
就具有代理function的全functionWeb服务器而言,Apache和nginx都能够满足选项a。
在Apache中,你会想使用mod_rewrite的代理function:
RewriteRule /(location[1-5]*\.html)$ http://sourceserver.example.com/$1 [P]
在nginx中,你只需要使用一个正则expression式来定位你的位置指令 – 参见这里
对于选项B,实现散列选项的大多数代理使用相反的方法; 确保来自给定客户端的所有请求都被发送到同一台服务器以维护会话状态。 你可以进一步了解为什么这是可取的细节?
很确定你也可以用haproxy来做到这一点,请参阅http://code.google.com/p/haproxy-docs/wiki/MatchingLayer7
以前的serverfault问题: 用haproxyselect服务器后端到某个URL有一个例子。
不pipe这是否合理,我都不知道。 可能是没有看haproxy的文档中的其他答案和警告。