我遇到了麻烦.我按照我在这里找到的指南
并通过cert导出并创建所有这些文件,但它不会告诉您哪个文件在哪个字段中.我尝试了我认为的所有组合,但它不接受它
我按如下方式设置平衡器

然后我尝试设置证书

然后你可以看到它告诉我它无效.
如果它帮助我从IIS导出并按照提供的链接上的教程,证书是DigiCert通配符证书,即(*.domain.com)
openssl load-balancing ssl-certificate amazon-web-services amazon-elb
如何通过ELB将ssl连接到由GlassFish在Amazon AWS EC2实例上提供的websocket?
我在GlassFish 4.1 b13预发布中使用Tyrus 1.8.1作为我的websocket实现.
端口8080是不安全的,端口8181是用ssl保护的.
我已成功使用ws和wss直接连接到我的EC2实例(绕过我的ELB).即以下两个网址都有效:
我已经通过使用tcp 80> tcp 8080监听器在我的ELB上成功使用了ws(非ssl).即以下网址有效:
但是,我没有能够通过我的ELB找到使用wss的方法.
我尝试了很多东西.
我假设最有可能通过我的ELB工作的方法是在我的ELB上创建一个tcp 8181> tcp 8181监听器并启用代理协议,并使用以下URL:
不幸的是,这不起作用.我想我可能必须在glassfish上启用代理协议,但是我无法找到如何做到这一点(或者如果可能的话,或者wss是否有必要在我的ELB上工作).
另一种选择可能是以某种方式使用ws或wss运行在ELB上终止的ssl连接,并通过使用ssl> tcp 8080侦听器使其继续对glassfish不安全.这对我来说也不起作用,但也许有些设置不正确.
有没有人对我上述两项试验进行任何修改.或者有人有其他建议吗?
谢谢.
几天,我们经常看到在通过ssl发出任何请求时,我们的ELB的初始连接时间非常长(15s - 1.3分钟).奇怪的是,我只能在谷歌浏览器中观察到这一点(不是Safari,也不是Firefox,也不是卷曲).
它并不是每次发出请求,而是大约50%的请求.它发生在第一个请求(OPTIONS-call).
我们的设置如下:跨区域ELB连接到node.js后端(目前在eu-west-1中的2个AZ).所有实例都是健康的,一旦请求通过,它就会正常处理.目前,系统基本上没有负载.Cloudwatch for ELB不会报告任何后端连接错误,也不会报告SurgeQueue(值0)和溢出计数.ELB指标显示低延迟(<100 ms).我们将Route53配置为路由到ELB(我们没有看到任何dns问题,请参阅附带的屏幕截图).
我们有不同的REST-API都有这个设置.它发生在所有ELB上(每个ELB都连接到一个独立的node.js后端).所有这些ELB都通过我们的cloudformation模板以相同的方式设置.
ELB也进行SSL终止.
什么可能导致这种行为?ELB可能配置不正确吗?为什么它只能出现在谷歌浏览器上?
我正在为我的应用程序使用带有应用程序负载均衡器的Amazon Web Services EC2容器服务.当我部署新版本时,我得到503服务暂时不可用大约2分钟.它比我的应用程序的启动时间多一点.这意味着我现在无法进行零停机部署.
是否有设置在启动时不使用新任务?或者我在这里缺少什么?
更新:
ALB的目标组的运行状况检查编号如下:
Healthy threshold: 5
Unhealthy threshold: 2
Timeout: 5 seconds
Interval: 30 seconds
Success codes: 200 OK
Run Code Online (Sandbox Code Playgroud)
健康阈值是'在考虑不健康目标健康之前所需的连续健康检查成功次数'
不健康阈值是'在考虑目标不健康之前所需的连续健康检查失败次数'.
超时是'没有响应意味着健康检查失败的时间量,以秒为单位.'
间隔是'单个目标的健康检查之间的大致时间'
更新2:所以,我的集群由两个EC2实例组成,但如果需要可以扩展.所需和最小计数为2.我为每个实例运行一个任务,因为我的应用程序需要特定的端口号.在我部署之前(jenkins运行aws cli脚本)我将实例数设置为4.如果没有这个,AWS就无法部署我的新任务(这是另一个需要解决的问题).网络模式是桥梁.
amazon-web-services amazon-ecs http-status-code-503 amazon-elb
使用 AWS 网络 ELB:注册实例至少需要四分钟才能变得“健康”。实例和服务已经运行了好几天,作为部署的一部分,我只是取消注册,然后在同一目标组上注册。如果我使用脚本或使用 AWS UI,CLI 没有区别。
健康检查设置是:
我可以看到来自指定端口的连接请求,服务做出适当响应,然后关闭连接。据我所知,这应该足以让 ELB 确定实例是否健康(一旦超过阈值)。这应该意味着我的实例在注册时间后启动并运行不超过 90 秒。我不知道为什么会发生这种情况,应该直截了当。
鉴于我已满足我的实例健康的已知标准,我无法确定是什么导致了如此长时间的延迟。他们在Elb.InitialHealthChecking原因上坐了大约 4 分钟。关于进一步测试以确定延迟原因的任何想法?
我有一个网络负载均衡器和一个关联的目标组,配置为对EC2实例进行运行状况检查.问题是我看到了很多健康检查请求; 每秒多次.
检查之间的默认间隔应该是30秒,但是它们比它们应该的频率高出约100倍.
我的堆栈是在CloudFormation中构建的,我试过覆盖HealthCheckIntervalSeconds,这没有任何效果.有趣的是,当我尝试在控制台中手动更改间隔时,我发现这些值是灰色的:
这是模板的相关部分,我尝试更改注释的间隔:
NLB:
Type: "AWS::ElasticLoadBalancingV2::LoadBalancer"
Properties:
Type: network
Name: api-load-balancer
Scheme: internal
Subnets:
- Fn::ImportValue: PrivateSubnetA
- Fn::ImportValue: PrivateSubnetB
- Fn::ImportValue: PrivateSubnetC
NLBListener:
Type : AWS::ElasticLoadBalancingV2::Listener
Properties:
DefaultActions:
- Type: forward
TargetGroupArn: !Ref NLBTargetGroup
LoadBalancerArn: !Ref NLB
Port: 80
Protocol: TCP
NLBTargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
# HealthCheckIntervalSeconds: 30
HealthCheckPath: /healthcheck
HealthCheckProtocol: HTTP
# HealthyThresholdCount: 2
# UnhealthyThresholdCount: 5
# Matcher:
# HttpCode: 200-399
Name: api-nlb-http-target-group
Port: 80
Protocol: TCP
VpcId: !ImportValue PublicVPC
Run Code Online (Sandbox Code Playgroud)
我的EC2实例位于私有子网中,无法访问外部世界.NLB是内部的,因此没有通过API网关就无法访问它们.API网关没有 …
amazon-ec2 amazon-web-services amazon-elb aws-cloudformation
ELB_5xx在 AWS Cloud Watch 中,错误和之间有什么区别Http_5xx?然后还有 Backend_connection_errors。
load-balancing amazon-web-services amazon-elb amazon-cloudwatch
我试图在一些Varnish服务器后面放置一组EC2实例.我们的Varnish配置很少变化(一年一次或两次)但我们总是出于各种原因(更新,问题,负载峰值)添加/删除/替换Web后端.这会产生问题,因为我们总是需要更新我们的Varnish配置,这会导致错误和心碎.
我想要做的是简单地通过在Elastic Load Balancer中添加或删除它们来管理后端服务器集.我已经尝试将ELB端点指定为后端,但是我收到此错误:
Message from VCC-compiler:
Backend host "XXXXXXXXXXX-123456789.us-east-1.elb.amazonaws.com": resolves to multiple IPv4 addresses.
Only one address is allowed.
Please specify which exact address you want to use, we found these:
123.123.123.1
63.123.23.2
31.13.67.3
('input' Line 2 Pos 17)
.host = "XXXXXXXXXXX-123456789.us-east-1.elb.amazonaws.com";
Run Code Online (Sandbox Code Playgroud)
ELB提供的唯一一致的公共接口是其DNS名称.此DNS名称解析为的IP地址集随着时间和负载而变化.
在这种情况下,我宁愿不指定一个确切的地址 - 我想在从DNS返回的任何内容之间进行循环.这可能吗?或者有人可以提出另一种可以完成同样事情的解决方案吗?
谢谢,山姆
我有一个生成SecurityGroup和ELB的CloudFormation脚本; 我正在尝试在ELB创建中引用SecurityGroup; 这是资源位:
"ELBSecurityGroup" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupDescription" : "Security group for the Arena dev stack",
"SecurityGroupIngress" : [
{"IpProtocol" : "tcp", "FromPort" : 80, "ToPort" : 80, "CidrIp" : { "Ref" : "OfficeIp" }}
]
}
},
"ProjectLoadBalancerTest" : {
"Type" : "AWS::ElasticLoadBalancing::LoadBalancer",
"Properties" : {
"AvailabilityZones" : { "Fn::GetAZs" : "" },
"Instances" : [ ],
"Listeners" : [ {
"LoadBalancerPort" : "80",
"InstancePort" : "12345",
"Protocol" : "HTTP"
} ],
"HealthCheck" : …Run Code Online (Sandbox Code Playgroud) 我正在开发一个POC来证明基于AWS路径的路由通过Application Load Balancer到一组非常基本的"hello world"node.js应用程序使用express.如果没有基于路径的路由并且具有多个侦听器,每个应用程序有一个侦听器,则每个相应的侦听器和应用程序都按预期工作.因此,目标群体内的目标均已通过健康检查,并显示为健康.但是,当我在其中一个侦听器上切换到基于路径的路由实现(删除其他不必要的侦听器)时,我得到两个应用程序的以下错误:
不能GET/expressapp
不能GET/expressapp2

我已经通过以下文档来试图找出问题:http: //docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions
我错过了什么?任何故障排除想法
amazon-elb ×10
amazon-ec2 ×2
amazon-ecs ×1
glassfish ×1
openssl ×1
ssl ×1
varnish ×1
websocket ×1
wss ×1