【问题标题】:Using HttpURLConnection with BigIp load balancer and Java 1.7将 HttpURLConnection 与 BigIp 负载平衡器和 Java 1.7 一起使用
【发布时间】:2016-06-15 03:35:34
【问题描述】:

伙计们,

我们有一个 Java Applet 通过 BigIp 负载平衡器与服务器通信。 Java Applet 使用的是 HttpURLConnection,通信协议是 https。

负载平衡器实施基于 cookie 的持久性策略来维护会话亲和性。 当 Java Applet 使用 Java 1.5、1.6 和 Java 1.7 的早期版本时,这一切都可以正常工作。

在 Java 1.7.0_21 附近的某个地方,Java Applet 出现了问题,现在当我们第二次打开 HttpURLConnection 时,负载均衡器不会将请求传递给服务器,而是使用为来自 Applet 的第一个请求,好像认为该请求是针对可以缓存的静态内容。

关于 HttpURLConnection 的最新 Java 版本有什么变化吗?

【问题讨论】:

  • conn.setUseCaches(false) 有帮助吗?或者您可以添加某种缓存破坏器,例如url += '?cb=' + System.currentTimeMillis()?
  • setUseCaches(false) 解决了这个问题。如果我能给你的答案投票一百万次,我会这样做的。

标签: java applet load-balancing httpurlconnection


【解决方案1】:

您可能需要检查是否正确协商 SSL 连接。您可以通过两种方式做到这一点:创建 iRule 以记录到 /var/log/ltm:

when HTTP_REQUEST {
   log local0. “Requested hostname: [HTTP::host] from IP: [IP::local_addr]”
}

开启SSL debug logging

tmsh modify /sys db log.ssl.level value Debug

如果您未能协商 SSL,您将不会看到 iRule 记录的任何内容,但应该会回答您未能握手的原因。大多数时候你需要调整你的cipher string.

【讨论】:

    猜你喜欢
    • 2016-09-11
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2013-03-26
    • 2017-08-13
    • 1970-01-01
    相关资源
    最近更新 更多