注意:这是在 Kubernetes 的容器中运行。
我已经成功完成了这个非常简短的描述:https://knative.dev/docs/serving/samples/grpc-ping-go/
成功:
2019/05/08 13:43:56 Ping got hello - pong
2019/05/08 13:43:56 Got pong 2019-05-08 13:43:57.646935391 +0000 UTC m=+1.661567121
但是,如果我在 https 的 knative 设置上从网关运行 443,它就不起作用:
docker run -ti --entrypoint=/client docker.io/{username}/grpc-ping-go \
-server_addr="${SERVICE_IP}:443" \
-server_host_override="${SERVICE_HOST}" \
-insecure
2019/05/08 13:50:28 &{0xc00012e000}.Ping failed rpc error: code = Unavailable desc = transport is closing:
client来自示例的代码,以及 server代码。 服务器未监听 tls,但通过 https 连接到服务器。
只是为了确保,我从 simpel hello-go 文本回复中知道 https 已失效。
最佳答案
在您的服务器代码中,您没有监听端口 443,因此这很可能是您的示例无法正常工作的原因。
如果您想继续使用 http 而不是 https,那么您的代码就可以正常工作。
如果你想让它与 TLS 一起工作,this overview 是一个很好的选择。
要让端口 80 重定向到端口 443(如果您使用 https,我强烈推荐它),请参阅 this SO post。
关于go - grpc-通过 https : failed rpc error: code = Unavailable desc = transport is closing:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56042511/