加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 具有基于标头的路由的HTTP负载均衡器?

发布时间:2020-12-13 23:53:50 所属栏目:Windows 来源:网络整理
导读:我正在寻找一个HTTP负载平衡解决方案,它将提供以下内容: 1)接受端口X上的HTTP连接,并将它们随机或以循环方式转发到多个其他主机(和/或端口)中的一个. 2)如果服务器回复包含具有特定值的某个HTTP标头(即’Magic-Number:12345′),请记住它并将包含相同标头的
我正在寻找一个HTTP负载平衡解决方案,它将提供以下内容:

1)接受端口X上的HTTP连接,并将它们随机或以循环方式转发到多个其他主机(和/或端口)中的一个.

2)如果服务器回复包含具有特定值的某个HTTP标头(即’Magic-Number:12345′),请记住它并将包含相同标头的所有后续请求转发到此服务器.

3)在一定的时间间隔内,通过向所有目标服务器发送指定的HTTP请求来执行保持活动测试.如果任一服务器没有回复,请停止转发,直到它再次联机.

4)(并不重要,但很高兴)接受来自客户端的HTTPS连接并将它们转换为与服务器的HTTP连接.

该解决方案必须包含免费和/或开源软件,并在Windows 200x Server下运行.

有什么建议?

更新:Cygwin或Portable Ubuntu(或其他Colinux发行版)也是可行的选择,如果他们能够运行适当的* nix解决方案.

因为我手边没有任何东西可以验证它是否正常工作,所以我正在写这篇文章,但我希望这可能会给你一些暗示.

所以,我的答案是:

当然你可以用Apache的mod_proxy_balancer来做到这一点.你应该可以用这样的东西来完成这个:

ProxyPassReverse / http://host1:80/
ProxyPassReverse / http://host2:80/

<Proxy balancer://cluster>
  BalancerMember http://host1:80 route=LB1
  BalancerMember http://host2:80 route=LB2
  ProxySet stickysession=MYSESSIONID
</Proxy>

因此,关于第1点,请阅读mod_proxy_balancer的“请求计数算法”部分.

关于第2点:我真的不知道HTTP头解析.上面的示例使用额外的URL参数MYSESSIONID来代理作为同一主机的同一连接的一部分的流量.我想你也可以使用cookies.无论如何,这应该由标识为LB1或LB2的应用程序处理(这些是作为会话ID或cookie的一部分添加的).

Re 3:负载均衡器监视其所有成员,并在它们没有响应时禁用它们.您还可以通过Web界面启用/禁用节点(mod_status,请参阅“启用Balancer Manager支持”).

对于第4点,您可以在端口443上设置启用SSL的VirtualHost监听,该端口代理所有流量到达平衡器成员端口80的流量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读