Golang - TLS 握手错误

2024-03-07

我正在 go 中运行 https Web 服务器。我正在使用一个有角度的网络应用程序(Chrome 浏览器)来测试它,该应用程序向网络服务器发出 ajax 调用。

如果我不断地访问网络服务器,一切似乎都正常。但是每当我让它闲置一段时间并访问网络服务器时,来自浏览器的 ajax 调用就不会得到响应。我几乎总是在服务器日志中看到此日志行。

2016/01/16 04:06:47.006977 http: TLS handshake error from 42.21.139.47:51463: EOF

我可以确认该IP地址是我的IP地址。

我像这样启动我的 https 服务器:

r := mux.NewRouter()
r.HandleFunc("/status", handleStatus)
setUpLoginEndpoint(&cfg.Session, r)
setUpLogoutEndpoint(cfg.Session.CookieName, r)
setUpChangePasswordEndpoint(cfg.Session.CookieName, r)
setUpMetricSinkEndpoint(cfg.Metric.SinkApiKey, r)
setUpMetricQueryEndpoint(cfg.Session.CookieName, r)
http.ListenAndServeTLS(":443", "../cert.pem", "../keys.pem", &Server{r})

我可以确认我正在使用 defer r.Body.Close() 关闭每个处理程序中的请求正文。

我正在使用 go 1.5.2。

任何帮助,将不胜感激。

Regards,

Sathya


我启用了tcp keepalive,这个问题就解决了。我在谷歌计算引擎中运行我的虚拟机,防火墙可能终止了空闲连接。

TCP 保持活动状态 http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html

在Linux中配置tcp keep-alive http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html

Golang http 服务器会自动识别此内容,因此不需要对我的 golang 代码进行任何更改。

Regards,

Sathya

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Golang - TLS 握手错误 的相关文章

随机推荐

  • 为什么日期之间的减法会返回 Rational 类型?

    我正在尝试对日期执行减法运算 date sent Date parse 2013 01 01 gt Tue 01 Jan 2013 date now Date today gt Wed 04 Sep 2013 days date now d
  • PHP 中的 undefined 相当于什么?

    我的假设随后是基于假设的问题 JavaScript 有null and undefined 您可以将变量设置为null 表示它没有值 或者您可以将其设置为undefined 这意味着不知道它是否有值 它只是根本没有设置 PHP has nu
  • akka-http 具有多种路由配置

    快速背景 我正在通过一些示例学习 Akka HTTP 堆栈来创建新的 REST 项目 完全非 UI 我一直在使用和增强Akka HTTP 微服务示例 http www typesafe com activator template akka
  • Java / 重构 switch case

    我正在尝试重构下一个案例 class Gen public void startClick A a B b List
  • Ubuntu 上的 Giza++ 有正确的安装指南吗?

    我看到适用于 Giza 的正确安装指南 但不适用于 Giza 安装前者的说明 可在此处找到 http giza sourceforge net documentation installation html http giza source
  • 接口和抽象类中的 Xml 属性

    今天发现了一件让我很困惑的事情 1 如果我有这个 public interface INamed XmlAttribute string Name get set public class Named INamed public strin
  • 人名中允许使用哪些字符? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Git / 分离 HEAD,恢复工作吗?

    我对我认为是我的分支进行了数十次提交 然后检查了另一个分支 愿意回到我最初的分支 我没有找到我更新的代码 在控制台中查看我的历史记录后 我了解到我在一个独立的分支工作 是否有可能获得我在独立分支上完成的工作 是的 您可以使用重新记录 尝试g
  • date() 方法,“遇到格式不正确的数值”不希望格式化 $_POST 中传递的日期

    不幸的是我不能使用DateTime 因为该项目所在的服务器正在运行 PHP v 5 2 有问题的行 aptnDate2 date Y m d POST nextAppointmentDate 抛出以下错误 Notice A non well
  • 如何同步线上线下数据库

    我有一个Web应用程序为我的客户提供一些信息 我有另一个版本 windows that exactly work same as web application 这是因为 Web 连接可能会丢失几个小时 而此时用户将使用该应用程序 我想知道
  • Jenkins:在升级构建中使用存档的工件

    我已经将一个工件归档为构建的最后一步 它可以如下所示使用 https xxx ci cloudbees com job xxx 52 artifact target xxx 1 2 1 SNAPSHOT r8304 20130807 150
  • Unix shell 命令的一般语法是什么?

    特别是 为什么有时某些命令的选项前面有一个 标志 有时由 sign 例如 sort f sort nr sort 4n sort 3nr 如今 POSIX 标准使用getopt http pubs opengroup org onlinep
  • 何时使用 StringIO,而不是连接字符串列表?

    使用 StringIO 作为字符串缓冲区比使用列表作为缓冲区慢 什么时候使用StringIO from io import StringIO def meth1 string a for i in range 100 a append st
  • 在 Swift 中将变量传递回父级

    我正在重写一个将代码从 Objective C 转换为 swift 的教程 该应用程序从 VC 开始 其中有 3 个滑块 红色 绿色和蓝色 用于设置背景颜色 颜色名称标签和链接到第二个 VC 的按钮 在第二个 VC 中 第一个 VC 中的颜
  • Nestjs 服务级别缓存

    查看 Netsjs 文档 我可以看到一般方法是利用 CacheInterceptor 进行控制器级缓存 我希望实现的是服务 数据库级缓存 用例主要用于其他服务所需的静态数据库数据 是否有办法扩展提供的缓存模块以在服务内使用 我也在寻找一种方
  • java.lang.UnsatisfiedLinkError:无法加载 stlport_shared:findLibrary 返回 null(tess-two)

    我正在使用 sqlcipher jar 在 android 中加密数据库 并在中使用它的本机库 libs armeabi 文件夹 1 lib数据库sqlcipher so 2 libsqlcipher android so 3 libstl
  • 如果标题是从不参与选项菜单的 Fragment 设置的,则 Activity 的标题区域不会展开

    这与提到的问题非常相似here https stackoverflow com q 24089136 1747491 这基本上解决了我的问题 但是 如果您正在设置title from a fragment这无助于options menu 则
  • 如何创建级联下拉列表

    我有两个用于过滤目的的下拉列表 如何将此下拉列表更改为 catchcadaing 下拉列表 public ActionResult Index REFINED DBEntities db new REFINED DBEntities Vie
  • 请帮我解决这个查询(sql server 2008)

    ALTER PROCEDURE ReadNews CategoryID INT Culture TINYINT NULL StartDate DATETIME NULL EndDate DATETIME NULL Start BIGINT
  • Golang - TLS 握手错误

    我正在 go 中运行 https Web 服务器 我正在使用一个有角度的网络应用程序 Chrome 浏览器 来测试它 该应用程序向网络服务器发出 ajax 调用 如果我不断地访问网络服务器 一切似乎都正常 但是每当我让它闲置一段时间并访问网