问题标签 [aws-load-balancer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - AWS 应用程序负载均衡器不工作
我有一个只有一个 EC2 实例的 EC2 集群,其中运行了两个服务:
api1,监听 8080 端口
api2,监听 9090 端口
如果我对 EC2 实例和这些端口发出请求,那么这两个 API 都可以正常工作。
现在,我想创建一个负载均衡器,这样我就可以对http://{load_balancer_ip}/api1
and发出请求http://{load_balancer_ip}/api2
,但我做不到。
我创建了两个目标组,都只有一个实例(我唯一的一个)
TargetGroup1
: 8080端口和8080端口注册的EC2实例TargetGroup2
: 9090端口和9090端口注册的EC2实例
然后,我创建了一个负载均衡器,在端口 80 上具有一个侦听器和这两个路径规则:
- 时
/api1
,转发到TargetGroup1
- 时
/api2
,转发到TargetGroup2
当我提出反对http://{load_balancer_ip}/api1
或http://{load_balancer_ip}/api2
没有任何反应时;我没有得到任何回应。
我错过了什么?
node.js - 用于服务器发送事件或 Websocket 的 Aws 负载均衡器
我正在尝试对 nodejs 服务器发送的事件后端进行负载平衡,我需要知道是否有办法将新连接分发到连接最少的客户端的实例。我遇到的问题是,当扩大规模时,路由会继续向已经饱和的实例发送新连接,并且由于连接寿命很长,这根本行不通。
对于水平扩展长寿命连接,我有哪些选择?
kubernetes - 无法使用 AWS Elastic LoadBalancer 创建 Kubernetes 服务
我创建了 aws 应用程序负载均衡器 myservices,并在 aws 控制台中列出了以下 DNS 名称 - internal-myservices-987070943.us-east-1.elb.amazonaws.com
我还在描述下创建了目标组并在下面显示 - 名称为 myservices-LB,协议为 HTTPS,端口为 443,目标类型为实例,负载均衡器为 myservices 在“目标”选项卡下我可以看到已注册的目标将我的实例 ID 显示为 i- 02dbf9b3a7d9163e7 端口为 443 和其他详细信息……此实例 ID 是我的 ec2 实例,我已将其配置为我的 kubernetes 集群的主节点。
实际上,我的负载均衡器和 EC2 实例都在同一个 VPC 中。
现在,我可以从我的本地计算机访问此 URL https://internal-myservices-987070943.us-east-1.elb.amazonaws.com 我所做的是 - 1)HTTPS 443 端口和 2 中的健康检查失败) 在我的 EC2 实例中安装了 Web 服务器 nginx。所以安装 nginx 并打开 SSL 端口会自动解决健康检查问题,我可以使用 https 浏览内部 LB URL。
但是我使用 kubernetes svc 创建负载均衡器的主要问题仍然没有解决:( 它仍然显示<pending>
为 EXTERNAL_IP。我的疑问是因为 EC2 实例和 LB 都在同一个 VPC 中,为什么不是 traceroute internal-myservices-987070943.us-east- 1.elb.amazonaws.com 没有跟踪它?我得到了所有 30 个跃点的所有 * * *。但是从我的本地计算机上我能够成功跟踪它。所以这就是它没有创建任何外部 ip 的原因?
我完成了 AWS 云与 kubernetes 集成所需的所有工作。
1) 我在 kube 集群中的主节点和工作节点的主机名与 EC2 实例 DNS 名称相同。
2) 为 EC2 实例和 kubelet 服务添加标签
3) 为 kube-api 和 kube-controller-manager POD 添加了 cloud-config 标签
4) 我看到 elasticloadbalancing:* 操作允许我在 AWS 中针对我的角色执行的策略。
另外我想知道当安装在我的 EC2 实例中的 nginx 能够访问我的 LoadBalancer 但 Traceroute 无法访问它时,情况如何。
是否可以使用我通过 AWS 控制台手动创建的负载均衡器直接访问我的服务?也许与 NodePort 或入口或其他东西..??
所以我坚持这个:(请帮助..
amazon-ecs - 使用 AWS Elastic Load Balancer 转发时更改路径
我有许多在 Amazon ECS 中运行的容器(在私有子网中),每个容器都在端口 8080 上为不同的应用程序提供服务。
我有一个面向公众的 ELB(附加到apps.example.com
)根据请求的路径转发流量。举例来说,apps.example.com/app1
被转发到端口 8080 上的 app1 服务的目标组。
我遇到的问题是容器中运行的应用程序不需要路径。
现在,似乎apps.example.com/app1
已转发到,private_app1_container:8080/app1
但我需要将其转发到private_app1_container:8080
.
有没有办法做到这一点?
我正在通过 aws Web 界面创建转发规则,虽然我可以转发到特定的目标组,但我看不到指定转发路径的方法。我曾考虑过重定向而不是转发,但我的容器位于私有子网中,我希望它们保持隔离。
amazon-web-services - X-Forwarded-Proto 未通过带有 Palo Alto VM 防火墙的 AWS ALB Sandwich
我们正在使用 Palo Alto 的 VM 防火墙和 ELB 的三明治拓扑,并且无法获得正确的 X-Forwarded-Proto 以使其一直返回到 Web 服务器。HTTPS 终止发生在外部负载均衡器上,然后作为 HTTP 通过堆栈的其余部分运行。使用单个负载均衡器,无论是 HTTP 还是 HTTPS,检索正确的 X-Forwarded-Proto 标头都没有问题。但是,在三明治拓扑中,无论如何我们都会将 HTTP 作为 X-Forwarde-Proto。
我们需要标头的主要问题是将所有请求重定向到 HTTPS,这可能可以在 PAN 防火墙上完成,但这也被证明是难以捉摸的。
amazon-web-services - 我们如何在不使用 LoadBalancers 的情况下在 AWS 中向公众公开 Kubernetes 服务?
我在第一次AWS
使用时运行 Kubernetes 集群Kops
,我需要一些帮助来使用 AWS 托管域名和 SSL 证书向公众公开服务。
集群在私有 VPC 中运行,我可以通过堡垒实例访问它。
现在,我使用 LoadBalancer 服务类型向公众公开服务,如下所示:
如您所见,我正在使用注释传递 SSL 证书,然后我将域名指向 loadBalancer 公共入口并完成。
问题:
这个项目是一个微服务项目,需要在不同的环境中向公众公开大量服务,这意味着AWS LoadBalancers
大量的金钱 $$$$。
我已经尝试过 NodePort 和 ExternalName 服务,但由于私有 VPC,它们都没有工作。
有什么建议可以解决这个问题吗?
amazon-web-services - AWS 负载均衡器 - 更改区域(使用 Terraform)
我有一个 Terraform 模块,它预置了一个 Auto-Scaling 组和所有必要的基础设施以在 AWS 上支持它。通常,Terraform 非常擅长检测基础设施代码的变化。但是,今天我注意到,如果 Terraform 正在管理负载均衡器,则区域的更改将导致错误。
我构建了一个最小示例来复制错误(此示例需要有效的 AWS 配置文件)
要复制错误:
- 1) 运行
terraform init; terraform apply
- 2)改变地区
- 3) 重复步骤 1) 会导致错误
错误如下:
错误:刷新状态错误:发生 1 个错误:
* module.asg-local.aws_lb.alb:发生 1 个错误:
* module.asg-local.aws_lb.alb:aws_lb.alb:检索 ALB 时出错:
ValidationError:
“arn:aws:elasticloadbalancing:us-east-1:199344973012:loadbalancer/app/rafa-lizzie-alb/ccbf16e255c2f904”不是有效的负载均衡器 ARN 状态代码:400,请求 ID:8b28f0d8-2ec2-11e9- 896a-4ffb7ae94bb8
我知道改变地区不是很正常,但无论如何,它可能会发生,对吧?我还想知道这是否是 Terraform 的预期行为,或者这是否是一个错误。
amazon-web-services - 我无法让我的自动缩放组引用我的 TargetGroup
我能够启动一个简单的自动缩放组。但是,当我尝试设置应用程序负载均衡器以将流量引导到我的各种实例时,问题就出现了。首先,我创建了负载均衡器,它也很简单。问题是创建目标组和听众。在我的自动缩放组中,我添加了以下属性:
然后,我的目标群体如下:
请注意,我是由 VpcId 硬编码的。我正在从 CLI 进行部署。在控制台中,我在堆栈中遇到的错误是:
前提是目标组“arn:aws:elasticloadbalancing:...”的目标类型无效。请确保所有提供的目标组都具有目标类型的实例
amazon-web-services - 如何使用 AWS Java Elastic Load Balancer SDK 检查负载均衡器的状态
我有一个 cli 命令,我正在尝试转换 Java SDK:
这应该报告由 EKS 创建的负载均衡器正在运行并准备就绪。
我在用:
与梯度:
到目前为止,SDK 似乎提供了几乎任何东西,但提供了负载均衡器的状态。
我正在调查
现在,但如果有人在我之前找到针头,将非常感谢您的帮助。
我需要等效的: https ://docs.aws.amazon.com/cli/latest/reference/elbv2/wait/load-balancer-available.html
或者这个(我猜是旧版本) https://docs.aws.amazon.com/cli/latest/reference/elb/wait/instance-in-service.html