我有一个弹性Beanstalk应用程序,最初配置为使用经典的负载平衡器。我发现这在通过WebSocket连接时会导致错误。因此,我将应用程序配置为使用应用程序负载平衡器,因为我被告知ALB支持WebSockets。然而,它们似乎没有:当我试图通过WebSocket连接到我的ALB时,会出现完全相同的错误。
ALB真的支持WebSocket吗?AWS文件在这方面存在矛盾。此页面表示它只支持HTTP和HTTPS。没有设置ALB以支持WebSocket的指南。
应用程序负载平衡器支持websocket。但直到2017年2月23日才支持websocket健康检查。他们以后可能会添加选项。当您想在应用程序负载平衡器后面使用websocket时,需要为目标组设置HTTP或HTTPS运行状况检查。
来自AWS文档:“请注意,运行状况检查不支持WebSockets。”
参考号:http://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html
ALB支持Websocket,但如果实例至少每隔“空闲超时”几秒钟不发送一些数据,负载均衡器可以关闭连接。
我能够让WebSockets使用新的应用程序负载平衡器(ALB)。
首先,为您的ALB创建一个新的目标组。此目标组应使用与您的应用程序相同的端口,并且需要配置健康检查。但是,主要区别在于您必须启用粘性。
接下来,在ALB中添加一个新的侦听器规则。该规则必须有一个路径来路由WebSocket设置-/socket.io.此外,将目标组名称设置为您刚刚创建的目标组。
我正在使用节点/Hapi/套接字。我的服务器的io(在从Amazon Linux AMI派生的实例上运行)。基本设置为:
const hapi = require('hapi');
const websocket = require('./WebSocket');
var server = new hapi.Server();
server.connection(config.Application);
websocket.Initialize(server.listener);
WebSocket.js在哪里
var io = null;
module.exports = {
Initialize: function (http) {
io = require('socket.io')(http);
io.on('connection', function (socket) {
console.log('Websocket ' + socket.id + ' connected.');
socket.on('disconnect', function () {
console.log('Websocket ' + socket.id + ' disconnected.');
});
});
}
};
我正在为我的客户使用Angular 1.5x和socket。io客户端。必须按以下方式配置WebSocket客户端选项,否则将无法连接。
(function () {
'use strict';
angular
.module('XXXXX', [])
.run(runHandler);
runHandler.$inject = ['WebSocketService'];
function runHandler(WebSocketService) {
WebSocketService.Initialize();
}
})();
WebSocket服务:
(function () {
'use strict';
angular
.module('XXXXX')
.factory('WebSocketService', WebSocketService);
WebSocketService.$inject = [];
function WebSocketService() {
var socket = null;
function initialize() {
var url = 'http://' + ALB_URL + ':5800';
socket = io(url, {transports: ['websocket'], upgrade: false});
socket.on('connect', function () {
console.log('Socket connected');
});
socket.on('disconnect', function () {
console.log('Socket disconnected');
});
}
return {
Initialize: initialize
};
}
})();
我希望在现有的服务器设置中集成WAF,因为我有经典的负载平衡器(带有EC2实例),它不支持WAF,我需要迁移到应用程序负载平衡器。 是否可以在不更改DNS(记录)的情况下将现有的经典负载平衡器迁移到应用程序负载平衡器?
我正在尝试设置应用型负载均衡,以将流量转发到AWS中的Nginx入口控制器。要设置Nginx入口控制器,我使用的是从安装说明中获得的YML。 部署后,一切正常,流量正确转发到EKS pod。但是,上面的YML文件正在aws中创建“经典负载均衡器”,因为我想创建“应用型负载均衡器”。我将“service.beta.kubernetes.io/aws-load-balancer-type: elb”更
我正在尝试在我的应用程序中使用AWS应用程序负载平衡器,其中包含WAF支持。同时,我还需要对反向代理的支持。AWS应用程序负载平衡器是否处理反向代理?
我正在尝试配置AWS应用型负载均衡器(与经典负载均衡器相比)以将流量分配到我的EC2 Web服务器。出于合规性原因,我的应用程序需要端到端SSL/HTTPS加密。 在我看来,确保在客户端和web服务器之间的整个过程中对流量进行加密的最简单方法是终止web服务器上的HTTPS连接。 我的第一个问题:是否可以通过AWS应用程序负载平衡器将HTTPS流量以这种方式传递到负载平衡器后面的web服务器? 根
AWS推出了应用程序负载平衡器,可以进行基于路径的路由。是否可以将经典负载平衡器放在应用程序负载平衡器之后。 示例:假设我们有两个经典的负载平衡器。应用程序负载平衡器将流量路由到所有url(如应用程序负载平衡器/前端)的第一个经典负载平衡器,并将流量路由到所有url(如应用程序负载平衡器/后端)的第二个经典负载平衡器* 目前,似乎我们只能将主机置于应用程序负载平衡器之后。是否可以将负载平衡器置于应
这是我的第一个负载平衡问题。 我已经编写了一个简单的express应用程序来了解负载平衡是如何工作的。我还看了一些类似于的东西。如果我必须使用Nginx进行负载平衡,那么我是否应该在4个不同的docker容器中运行4个不同的express实例,然后使用Nginx在它们之间进行负载平衡,而Nginx位于自己的容器中? 我说得对吗?我有点困惑