亚马逊应用程序负载均衡器上托管的套接字连接上有400个错误请求

问题描述 投票:0回答:1

背景

我正在研究kong admin连接到kong api gateway

我正在使用kong admin提供的docker file

问题

docker容器在我的本地计算机上运行正常,并按预期加载UI

enter image description here

但是,当我试图访问亚马逊ecs托管的同一个docker时,它不起作用。它只是不断显示装载机。

enter image description here

基础设施

docker容器托管在亚马逊负载均衡器后面,并在端口80上侦听。端口80上的流量然后被转发到docker容器内的端口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": "/"
}

任何人都可以指出正确的方向进行调试。我没有起点。

amazon-web-services docker socket.io sails.js amazon-alb
1个回答
0
投票

我必须在ALB上启用粘性会话,因为我在负载均衡器后面托管了多个Docker容器

问题是没有粘性会话我在一台服务器上登录,我得到了websocket会话ID,并且读取请求正在单独的服务器上进行,因为这样我得到了连续的成功和失败响应,因为serges是负载平衡的。

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

© www.soinside.com 2019 - 2024. All rights reserved.