AWS ALB - ошибка во время квитирования WebSocket

Я запускаю веб-приложение tomcat / java на aws за балансировщиком нагрузки приложения.

У меня есть конечная точка WebSocket, настроенная в «/ socketserver». Локально все работает, но когда веб-приложение развертывается на aws, создается клиент websocket через javascript (например, var exampleSocket = new WebSocket ("ws: //www.example.com/socketserver"); возвращает ошибку 404 во время рукопожатия Websocket.

Требуется ли дополнительная настройка? Я слышал, что ALB изначально поддерживает веб-сокеты. Спасибо.

кое-что я пробовал:

  1. создание отдельной целевой группы с путем к «/ socketserver», добавление дополнительного правила http и включение закрепления сеанса.

  2. изменение области зависимости maven websocket на предоставленную.

  3. проверил журнал доступа, обнаружил 127.0.0.1 - - [26 / мар / 2017: 13: 31: 29 +0000] "GET / socketserver HTTP / 1.1" 404 1002


person Justin Lee    schedule 26.03.2017    source источник
comment
Можете выложить настройки своего ALB?   -  person user156327    schedule 26.03.2017
comment
Вы уверены, что ваш клиент javascript пытается подключиться к правильному URL-адресу?   -  person vtortola    schedule 26.03.2017


Ответы (2)


Я считаю, что вам нужно активировать «Прилипчивость» в вашей целевой группе.

Вам также необходимо указать транспортный «websocket» для всех ваших клиентов socket.io.

person Abdoul Ndiaye    schedule 26.03.2017
comment
Я включил липкость, но это не решило проблему. - person Justin Lee; 26.03.2017
comment
Я также не использую socket.io, просто javascript. - person Justin Lee; 26.03.2017

Если вы используете ALB и у вас возникла эта проблема, попробуйте обновить свою политику безопасности, я столкнулся с той же проблемой, хотя она отлично работала в той же настройке для другого веб-сайта, но заметил, что политика безопасности отстала примерно на 1 год. Обновление до более новой, похоже, решило проблему.

person Michael Mitchell    schedule 31.03.2017