Kubernetes 使用varnish从EKS查找有关SSL错误的调试建议
我知道这是一个有点具体的问题,但我有一个问题,我似乎无法找到。我在EKS上部署了一个pod——该pod包含一个python应用程序和一个varnish反向缓存代理。我正在提供分块json,也就是json的流式传输线,一个la,它可以是多GB的数据 我第一次发出请求时,它命中python服务器,所有操作都正常。它比缓存的版本要长得多,但整个json行都是下载的。但是,现在它缓存在varnish中,如果我使用curl,我会得到:Kubernetes 使用varnish从EKS查找有关SSL错误的调试建议,kubernetes,varnish,amazon-eks,Kubernetes,Varnish,Amazon Eks,我知道这是一个有点具体的问题,但我有一个问题,我似乎无法找到。我在EKS上部署了一个pod——该pod包含一个python应用程序和一个varnish反向缓存代理。我正在提供分块json,也就是json的流式传输线,一个la,它可以是多GB的数据 我第一次发出请求时,它命中python服务器,所有操作都正常。它比缓存的版本要长得多,但整个json行都是下载的。但是,现在它缓存在varnish中,如果我使用curl,我会得到: curl: (56) GnuTLS recv error (-110)
curl: (56) GnuTLS recv error (-110): The TLS connection was non-properly terminated.
或
SSL在ELB处终止,当我使用curl从代理容器本身使用curl时http://localhost?....,没有问题
这其中最困难的部分是问题有点间歇性
如果有任何关于varnishlog巧妙使用的建议,或者关于AWS的类似建议,我将不胜感激
谢谢 因为TLS是在ELB负载平衡器上终止的,所以它们之间的连接应该是纯HTTP
该错误可能不是来自Varnish,因为Varnish当前不以本机方式处理TLS。我不确定varnishlog是否能让您更好地了解实际发生的情况
清单
我能给你的唯一清单如下:
确保您使用的证书有效
确保您通过HTTP而不是HTTPS连接到目标组
如果在ELB上启用代理协议,请确保Varnish在常规HTTP请求的基础上有一个侦听代理协议请求的-a侦听器。
调试
执行自顶向下的调试:
增加cURL调用的详细程度,并尝试获取有关错误的更多信息
尝试访问ELB的日志,并在那里获取更多详细信息
从EKS日志中获取更多信息
最后,执行varnislog-g request-q ReqUrl eq'/your url'以获得特定url的完整Varnishlog
curl: (56) GnuTLS recv error (-9): A TLS packet with unexpected length was received.