grpc-go over https: ошибка rpc: code = недоступно desc = транспорт закрывается: - PullRequest
1 голос
/ 08 мая 2019

Примечание: это выполняется в контейнерах в Кубернетесе.

Я успешно сделал это очень краткое описание: 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

Но еслиЯ запускаю через 443 от шлюза на knative setup для https, он не работает:

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: 

клиент код из примера и сервер код,Сервер не прослушивает tls, но соединение с сервером осуществляется через https.

Просто чтобы убедиться, я знаю, что HTTPS работает из-за простого текстового ответа.

1 Ответ

1 голос
/ 08 мая 2019

В коде вашего сервера вы не прослушиваете порт 443, поэтому, скорее всего, это причина того, что ваш пример не работает.

Если вы хотите продолжать использовать http, а не https, тогда ваш кодработает просто отлично.

Если вы хотите, чтобы он работал с TLS, этот обзор довольно хороший.

Чтобы заставить порт 80 перенаправить на порт 443(Я настоятельно рекомендую его, если вы используете https), см. этот пост .

...