Разрешить подключения через веб-сокеты на Google Cloud Platform

У нас есть проект GCE с несколькими серверами за балансировщиком нагрузки. На серверах работает HTTPS-сервер NodeJS. Недавно мы попытались реализовать поддержку веб-сокетов, но не можем подключиться к нему из-за балансировщика нагрузки. Как только заголовок обновления отправляется на сервер для запуска веб-сокета, он закрывает соединение с ошибкой 400.

В журналах балансировщика нагрузки мы видим следующее:

  @type:  "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"   
  statusDetails:  "upgrade_header_rejected"   

Кажется, что соединение не проходит с нашими внутренними серверами. Кто-нибудь знает, как это решить?

1
задан 23 April 2019 в 14:07
1 ответ

WebSocket изначально поддерживается балансировщиками нагрузки HTTP(s) в GCP. Если вы используете этот балансировщик нагрузки и получаете сообщение «upgrade_header_rejected», вероятно, это связано с тем, что серверная часть отклонила соединение. Также возможно, что клиент пытался перейти с безопасного соединения на небезопасное или что заголовок является недопустимым.

1
ответ дан 2 December 2020 в 07:27

Теги

Похожие вопросы