当前位置: 首页 > 知识库问答 >
问题:

Softlayer的本地负载平衡-未分发HTTPS请求

冯星阑
2023-03-14

我正在使用SoftLayer的本地负载平衡:https://www.ibm.com/cloud-computing/bluemix/load-balancing

目前的设置是两台服务器,HTTP和HTTPS流量各占一半。该方法是循环的,没有持久性设置。

对于HTTP流量,请求在两个服务器之间正确交替。负载均衡器的更改会立即被拾取。

问题是HTTPS:

  • 对于HTTPs流量,只有一台服务器会受到攻击——它是随机选择的,所有后续请求都会与之保持一致,永远不会转到另一台服务器
  • 即使在负载平衡器中禁用了同一服务器,请求仍会继续命中该服务器。这种行为将永远持续下去
  • 如果我停止请求并等待大约一分钟,然后继续,另一个启用的服务器就会被正确地拾取

我将测试日志放在这个问题的底部,以演示该行为。它包含服务器名称和生成的时间戳(以确保页面不会被缓存)。

现在是棘手的部分。在Firefox中,行为与前面描述的相同,但当我按下CTRL F5时,我会进入另一台服务器。这意味着缓存了一些内容,而不是页面本身(如时间戳所示)。我没有看到任何可疑的标题或饼干。另外,我不确定是什么样的报头使LB将流量重定向到单个服务器。

执行此测试时禁用了防火墙。跟踪请求在负载均衡器上结束(实际服务器的IP永远不会提供给客户端)。

负载均衡器设置

标题

收到https://test.devcorp.kangogift.com/login?ReturnUrl=/HTTP/1.1主机:测试。devcorp。康戈吉夫特。com连接:keep alive缓存控制:max age=0升级不安全请求:1个用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,比如Gecko)Chrome/58.0.3029.110 Safari/537.36接受:text/html、application/xhtml、application/xml;q=0.9,image/webp,/;q=0.8接受编码:gzip,deflate,sdch,br接受语言:cs,en;q=0.8,美国;q=0.6 Cookie:ASP。净会话ID=dyvydeine15qe5wj5yikhmkf__utma=212613646.1973225437.149546549.149557138.1495575175.4__utmc=212613646__utmz=212613646.1495466549.1.1。utmcsr=(直接)| utmccn=(直接)| utmcmd=(无)。AspNet。曲奇2)2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 M2N4-NWQ9HXRLK16IHKCOCHX5XLJMQL0YD5ADIOGJJCEJYCWKHS_aM-H6HrGM0CpW1erIPDi7AIwUTlkZP4ZVI0OjCnmwEJ2fqmyL1JkGGDkJHi4sFUGcxxKYvtryJSPloOvuXBhWUVQ6ew X-CookiesOK:我明确接受所有cookie

HTTP/1.1 200 OK Cache-Control: Private Content-Type: text/html; charset=utf-8 Content-Encode: gzip Vary: Accept-Encode Server: Microsoft-IIS/10.0 X-AspNetMvc-Version: 5.2 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP. NET P3P:政策参考="超文本传输协议://www. ****.com/privacy", CP="CURa ADMa DEVa TAIa CONa Our DELa BUS IND PHY ONL UNI PUR COM NAV DEM STA"Date: Fri,26 May2017 19:59:29GMT Content-Llong: 7405

测试结果:

----HTTP测试20次----

服务器:SERVER2,时间:2017年5月26日11:30:47上午服务器:SERVER1,时间:2017年5月26日11:30:33上午服务器:SERVER2,时间:2017年5月26日11:30:49上午服务器:SERVER1,时间:2017年5月26日11:30:34上午服务器:SERVER2,时间:2017年5月26日11:50上午服务器:SERVER1,时间:2017年5月26日11:30:51上午服务器:SERVER1,时间:2017年5月26日11:30:37上午服务器:SERVER2,时间:2017年5月26日11:30:53上午服务器:服务器1,时间:2017年5月26日11:30:38上午服务器:服务器2,时间:2017年5月26日11:30:54上午服务器:服务器1,时间:2017年5月26日11:30:39上午服务器:服务器2,时间:2017年5月26日11:30:55上午服务器1,时间:2017年5月26日11:40上午服务器:服务器2,时间:2017年5月26日11:56上午服务器:服务器1,时间:2017年5月26日11:30:42上午服务器:服务器2,时间:2017年5月26日上午11:30:58服务器:服务器1,时间:2017年5月26日上午11:30:43服务器:服务器2,时间:2017年5月26日上午11:30:59服务器:服务器1,时间:2017年5月26日上午11:30:44服务器:服务器2,时间:2017年5月26日上午11:31:00

---正在禁用LB上的服务器SERVER1---

----HTTP测试20次----

服务器:服务器2,时间:2017年5月26日11:43:39上午服务器:服务器2,时间:2017年5月26日11:43:40上午服务器:服务器2,时间:2017年5月26日11:43上午服务器:服务器2,时间:2017年5月26日11:43:41上午服务器:服务器2,时间:2017年5月26日11:42上午服务器:服务器2,时间:2017年5月26日11:43上午服务器:服务器2,时间:2017年5月26日11:43上午服务器:服务器2,时间:2017年5月26日11:43上午服务器:,时间:2017年5月26日11:43:45上午服务器:服务器2,时间:2017年5月26日11:43:45上午服务器:服务器2,时间:2017年5月26日11:43:46上午服务器:服务器2,时间:2017年5月26日11:43:46上午服务器:服务器2,时间:2017年5月26日11:48上午服务器:服务器2,时间:2017年5月26日11:48上午服务器:服务器2,时间:2017年5月26日11:49上午服务器:服务器2,时间:2017年5月26日上午11:43:50服务器:服务器2,时间:2017年5月26日上午11:43:50服务器:服务器2,时间:2017年5月26日上午11:43:51服务器:服务器2,时间:2017年5月26日上午11:43:52服务器:服务器2,时间:2017年5月26日上午11:43:52

---两台服务器都在LB上启用---

----HTTPS测试20次----

服务器:SERVER1,时间:5/26/2017 11:34:35AM服务器:SERVER1,时间:5/26/2017 11:34:23AM服务器:SERVER1,时间:5/26/2017 11:34:24AM服务器:SERVER1,时间:5/26/2017 11:34:24AM服务器:SERVER1,时间:5/26/2017 11:34:25AM服务器:SERVER1,时间:5/26/2017 11:34:25AM服务器:SERVER1,时间:5/26/2017 11:34:26AM服务器:SERVER1,时间:5/26/2017 11:34:27AM服务器:SERVER1,时间:5/26/2017 11:34:27AM服务器:SERVER1,时间:5/26/2017 11:34:28AM服务器:SERVER1,时间:5/26/2017 11:34:29AM服务器:SERVER1,时间:5/26/2017 11:34:29AM服务器:SERVER1,时间:5/26/2017 11:34:30AM服务器:SERVER1,时间:5/26/2017 11:34:30AM服务器:SERVER1,时间:5/26/2017 11:34:31AM服务器:SERVER1,时间:5/26/2017 11:34:32AM服务器:SERVER1,时间:5/26/2017 11:34:32AM服务器:SERVER1,时间:5/26/2017 11:34:33AM服务器:SERVER1,时间:5/26/2017 11:34:34AM服务器:SERVER1,时间:5/26/2017 11:34:34AM服务器:SERVER1,时间:5/26/2017 11:34:22AM

---正在禁用LB上的服务器SERVER1---

----HTTPS测试20次----

服务器:SERVER1,时间:2017年5月26日11:35:01上午服务器:SERVER1,时间:2017年5月26日11:35:01上午服务器:SERVER1,时间:2017年5月26日11:35:02上午服务器:SERVER1,时间:2017年5月26日11:35:03上午服务器:SERVER1,时间:2017年5月26日11:35:04上午服务器:SERVER1,时间:2017年5月26日11:35:05上午服务器:SERVER1,时间:2017年5月26日11:35:05上午服务器:SERVER1,时间:2017年5月26日11:35:06上午服务器:服务器1,时间:2017年5月26日11:35:06上午服务器:服务器1,时间:2017年5月26日11:35:07上午服务器:服务器1,时间:2017年5月26日11:35:08上午服务器:服务器1,时间:2017年5月26日11:35:09上午服务器:服务器1,时间:2017年5月26日11:35:10上午服务器:服务器1,时间:2017年5月26日11:35:10上午服务器:服务器1,时间:2017年5月26日11:35:11上午服务器:服务器1,时间:2017年5月26日11:35:12上午服务器:服务器1,时间:2017年5月26日11:35:12上午服务器:服务器1,时间:2017年5月26日11:35:13上午服务器:服务器1,时间:2017年5月26日11:35:13上午

----延迟1分钟----

----HTTPS测试20次----

服务器:SERVER2,时间:2017年5月26日11:36:32上午服务器:SERVER2,时间:2017年5月26日11:36:33上午服务器:SERVER2,时间:2017年5月26日11:36:34上午服务器:SERVER2,时间:2017年5月26日11:36:34上午服务器:SERVER2,时间:2017年5月26日11:36上午服务器:SERVER2,时间:2017年5月26日11:36上午服务器:SERVER2,时间:2017年5月26日11:36:37上午服务器:服务器2,时间:2017年5月26日11:36:38上午服务器:服务器2,时间:2017年5月26日11:36:39上午服务器:服务器2,时间:2017年5月26日11:36:39上午服务器:服务器2,时间:2017年5月26日11:36:41上午服务器:服务器2,时间:2017年5月26日11:41上午服务器:服务器2,时间:2017年5月26日11:36:42上午服务器:服务器2,时间:2017年5月26日11:36:43上午服务器:服务器2,时间:2017年5月26日11:36:43上午服务器:服务器2,时间:2017年5月26日11:36:44上午服务器:服务器2,时间:2017年5月26日11:36:44上午服务器:服务器2,时间:2017年5月26日11:45上午

共有1个答案

马坚白
2023-03-14

作为一种预感,很可能是因为HTTPS维护了一些状态,所以出于性能原因,也许它会停留在一台服务器上,或者负载均衡器不是太智能,只是在端口443中看到一个持久的传输控制协议,并维护/从不断开它(直到你空闲超时,他通过在浏览器上等待几分钟来连接)。

 类似资料:
  • 我试图为我们的服务器安装负载平衡器。如果使用http,它可以正常工作。但是当我切换到https时 我在浏览器控制台中遇到以下错误: 混合内容:页面位于'https://www.something.com/'通过HTTPS加载,但请求了一个不安全的脚本'…mootools.js'。此请求已被阻止;内容必须通过HTTPS提供 我想我做了一些硬代码,比如“http://www.something.com

  • 我有两条溪流。一个是事件流,另一个是数据库更新流。我想用从DB更新流构建的信息丰富事件流。 事件流非常庞大,使用5个字段进行分区。这给了我很好的分配。DB流不那么喋喋不休,并且使用两个字段进行分区。我目前正在使用两个公共字段连接这两个流,并使用flapMap来丰富第一个流。flatMap运算符使用ValueState维护状态,状态由两个公共字段自动键入。 除了实现自定义逻辑来手动提取键并更新维护状

  • 我是微服务的新手。(学习阶段)。我有一个问题。我们在云中部署微服务。(例如 AWS)。云已经提供了负载平衡和日志。我们还在Spring Boot中实现了负载平衡(功能区)和日志(Rabbit MQ和Zipkin)。这两种实现有什么区别?我们两者都需要吗?有些人可以回答这些问题吗? 提前感谢。

  • 最近,我在一台机器上使用HAProxy配置了两个Tomcat(A和B)的集群(一切正常)。我已经在两个网络服务器上解除了Geonetwork WAR。我启动Tomcat A没有问题,但是当启动Tomcat B时,当它的“geonetwork.war”试图访问Lucen索引时出错,这是由于Tomcat A启动时write.lock生成的锁(我假设)。 错误如下: 2016-11-22 20:47:5

  • web-service预期会有很多调用,而我希望在出现故障时使该服务成为冗余,因此我希望有两个实例同时运行以处理所有请求。 1)让两个级别的Web服务同时处理请求的最佳方法是什么?使用外部负载均衡器还是使用AKKA/AKKA-HTTP中的某种魔法(我不知道)? 2)我必须调整哪些主要参数来提高性能?

  • 我们面临着 ActiveMQ - M 集合负载平衡的几个问题。有人可以帮忙吗?以下是我们的设置 MCO在故障转移池-Broker1中配置了两个ActiveMQ代理 经纪人1 问题1:MCO客户端在broker1和broker2之间的负载平衡和连接不相等。700 MCO连接到broker1,而只有100 MCO连接至broker2。我们是否缺少此负载平衡的任何属性? 问题 2: 当我们添加新的代理(