400 неправильных запросов на сокетное соединение, размещенное на балансировщике нагрузки приложения amazon - PullRequest
0 голосов
/ 04 декабря 2018

Фон

Я работаю на kong admin для подключения к kong api gateway

Я использую файл docker предоставлено администратором kong.

Проблема

Докер-контейнер работает нормально на моей локальной машине, и пользовательский интерфейс загружен, как и ожидалось

enter image description here

Однако, когда я пытаюсь получить доступ к тому же докеру, размещенному на Amazon ECS, он не работает.Он просто показывает загрузчик.

enter image description here

Инфраструктура

Контейнер док-станции размещается за нагрузкой Amazonбалансировщик и прослушивает порт 80. Затем трафик через порт 80 перенаправляется на порт 1337 внутри контейнера докера

URL-адрес балансировщика нагрузки - http://staging.host.internal

Ошибка

Запрос

Request URL: http://staging.host.internal/socket.io/?__sails_io_sdk_version=0.13.8&__sails_io_sdk_platform=browser&__sails_io_sdk_language=javascript&EIO=3&transport=polling&t=MTvxlu9&sid=lH69C1E52B3aGVIwAANl
Request Method: GET
Status Code: 400 Bad Request
Remote Address: xx.xx.xx.xx:xx
Referrer Policy: no-referrer-when-downgrade
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Type: application/json
Date: Tue, 04 Dec 2018 15:56:05 GMT
Transfer-Encoding: chunked
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Connection: keep-alive
Cookie: io=lH69C1E52B3aGVIwAANl

Ответ

{"code":1,"message":"Session ID unknown"}

Я получаю ошибку ниже в консоли

WebSocket connection to 'ws://staging.host.internal/socket.io/?__sails_io_sdk_version=0.13.8&__sails_io_sdk_platform=browser&__sails_io_sdk_language=javascript&EIO=3&transport=websocket&sid=j-RcLmqGi5bZoQ4YAAPF' failed: WebSocket is closed before the connection is established.

На сервережурналы для DEBUG = socket.io. * Я получаю приведенный ниже журнал

Tue, 04 Dec 2018 15:07:26 GMT socket.io-parser encoding packet
{
    "type": 0,
    "nsp": "/"
}

Может кто-нибудь указать правильное направление для его отладки.У меня нет начальной точки.

1 Ответ

0 голосов
/ 14 марта 2019

Мне пришлось включить липкий сеанс на ALB, так как за балансировщиком нагрузки было размещено несколько контейнеров Docker

Проблема заключалась в том, что без липкого сеанса я входил в систему на одном сервере, на котором я получил идентификатор сеанса websocketи запрос на чтение шел на отдельном сервере, из-за этого я получал постоянные ответы об ошибках и успехах, так как саржи были сбалансированы по нагрузке.

https://www.looklinux.com/enable-sticky-session-application-load-balancer-aws/

...