问题标签 [aws-application-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.

0 投票
1 回答
859 浏览

amazon-cognito - 为什么.auth.us-east-1.amazoncognito.com 给了我一个空白页?

我在 ECR>ECS>Fargate 上部署了一个简单的 Flask 应用程序。该应用程序正在由 Application Load Balancer 加载,并且 Cognito 用于身份验证。

我的回调 url 是https://ApplicationLoadBalancer的 DNS/oauth2/idpresponse

如果我尝试https://ApplicationLoadBalancer的 DNS 一切正常,会弹出登录页面,我可以毫无问题地登录。

但是,如果我尝试使用 Cognito 中域名下设置的 https://.auth.us-east-1.amazoncognito.com,我只会得到一个空白页。如果我更进一步并尝试 https://.auth.us-east-1.amazoncognito.com/login 我得到'必需的字符串参数'client_id'不存在'

任何帮助是极大的赞赏。

谢谢!

0 投票
2 回答
2520 浏览

amazon-web-services - 使用 AWS ALB 让子域指向不同的目标组

现在example.com,我在 Google Domains 上托管了一个域 ( ),但使用了 Amazon 的 Route 53 DNS 服务器,并且我创建了一个托管区域并使用 ACM 免费注册了 SSL 证书。所以我得到它来接受请求example.com并将它们转发给目标组(EC2 实例)。

我想将其扩展为:

  • staging.example.com
  • prod.example.com

每个人都有自己指向的目标群体。

ALB可以做到这一点吗?我如何将其编码到负载均衡器的路由规则中?

(另外:我是否必须重新验证子域的 SSL 证书?)

0 投票
1 回答
876 浏览

amazon-web-services - 向 Application Load Balancer (ALB) 注册 EC2 实例时出现问题

根据文档,我应该能够使用elb_instance模块注册 EC2 实例,但播放失败并显示ELB Staging1 does not exist. 对于健全性检查,我尝试使用 AWS CLI 工具,但使用An error occurred (LoadBalancerNotFound) when calling the RegisterInstancesWithLoadBalancer operation: There is no ACTIVE Load Balancer named 'Staging1'. 作为情节转折:

  • AWS 控制台将 ALB 显示为“活动”
  • elb_application_lb_facts也列出来
  • ec2_elb_facts没有列出它(它只列出了我拥有的经典 ELB)

似乎应用程序负载均衡器仅在较新的 api 版本中受支持,并且模块或 cli 不适合使用它。但是我找不到明确提到它们不应该工作。我也知道elbv2command,但它似乎没有提供将实例注册到 ELB 的方法。

我在这里想念什么?

我写的 Ansible 任务:

使用 cli 工具替代aws(也不起作用):

0 投票
2 回答
1700 浏览

amazon-web-services - 如果我们有用于 Node 应用程序的 AWS 应用程序负载均衡器,Nginx 会变得多余吗?

我有一个在 AWS 上运行的 Node 应用程序。投入生产时,它很有可能会收到大量请求。我计划使用 AWS ECS 托管它,并且在应用程序前面会有一个 AWS 应用程序负载均衡器。当我查看“如何在生产中部署 Node 应用程序”时,我看到每个人都在建议在 Node 应用程序前面使用 Nginx。

我的疑问是,如果我们在架构中有 ALB,我们是否还需要添加 Nginx?如果我们需要为 100 万用户托管应用程序,使用 Nginx 有什么好处吗?

0 投票
1 回答
1323 浏览

docker - aws ecs 上的 nginx docker 容器 >> 普通 HTTP 请求已发送到 HTTPS 端口

我有一个在 aws ecs ec2 实例上运行的前端 Angular 应用程序,并且两者都连接到网络负载均衡器的 TCP 端口 443 和 80。我将在这个具有多个域名的 nginx docker 容器上配置许多 vhost。在 ecs 服务中,要负载平衡的容器被指定为端口 443。我们必须选择容器的端口 443 或 80 来进行负载平衡。https://prnt.sc/pocu41. 在 https 上,网站加载正常。但是在http上我得到了错误

我打算在 docker 容器上使用 ssl 证书,而不是在负载均衡器上使用 ssl。如果我在负载均衡器上选择 ssl,那么我们需要在应用程序负载均衡器默认证书中使用多域 ssl,并且在有数百个域时可能不可行。

我的 Nginx conf 看起来像这样

知道我们如何解决这种情况吗?

0 投票
2 回答
820 浏览

amazon-web-services - ALB 抱怨 cognito

我正在尝试将应用程序负载均衡器连接到 AWS Cognito,除了尝试保存更改并收到此错误“用户池客户端必须具有客户端密码”外,一切似乎都正确,我用谷歌搜索但没有找到任何有用的东西。

我能够成功测试 Cognito 身份验证 UI(我认为...),所以我不明白 AWS 为什么会抱怨用户池客户端。

所以问题是,有没有人遇到过这个问题,如果你遇到过,你是怎么解决的?

编辑:

基本上,我所做的一方面是我将 Cognito 配置为仅与 Google OAuth 一起使用(我删除了亚马逊默认的 OAuth),另一方面我创建了一个具有多个规则的应用程序负载均衡器,每个规则指向一个不同的目标group,每个目标组是一个运行在 Kubernetes 上的 Docker 应用程序。(又名 EKS)。所有这些应用程序都有不同类型的身份验证,或者根本没有。所以想法是在 ALB 中添加一个规则来使用 Cognito 对用户进行身份验证。问题是,在添加了所有必需的参数之后,就在我要保存我的更改时,所有这些新的更改。我收到一个错误“用户池客户端必须有一个客户端密码”,我用谷歌搜索了那个确切的句子,除了我在其他地方发布的帖子外,我什么也没得到。

谢谢你的时间!

0 投票
1 回答
546 浏览

amazon-web-services - 为 AWS Application Load Balancer 使用静态 ip

我们的要求是

  1. 将静态 IP 分配给 ALB,因为我们的许多客户已将其列入防火墙白名单。
  2. X-Forwarded-For HTTP 标头应该包含客户端 IP 地址,因为我们有一个类似https://www.whatismyip.com/的服务正在运行,我们的数千个 IOT 设备已经在使用它。

尝试了以下解决方案,但它没有执行 #2,我们在 X-FF https://aws.amazon.com/blogs/networking-and-content-delivery/using-static中看到内部 NLB ip 而不是客户端 IP -ip-addresses-for-application-load-balancers/

是否有任何负载均衡器可以执行 #1 和 #2,或者 AWS 可以根据要求实现这一点?任何帮助/指针表示赞赏,谢谢!

0 投票
2 回答
198 浏览

amazon-web-services - 为 alb 创建目标组(应用程序负载均衡器)

在将 ALB 的目标组创建为 port 的私有 r 公共 vpc 时8080,为什么我需要提及路径,对于常规的 html 页面,我们有.index文件,但是当我们在 port 运行应用程序时8080,我们如何定义路径?

0 投票
1 回答
468 浏览

amazon-web-services - AWS Application Load Balancer 未加载指向同一 EC2 实例的目标组之一

我有一个 EC2 实例,它安装并配置了两个应用程序

  • Jenkins(在端口 8080 上运行,我已将其配置为使用上下文路径/jenkins/
  • SonarQube(在端口 9000 上运行,我已将其配置为使用上下文路径/sonar/

当我简单地点击 EC2 实例的公共 DNS 时,会发生以下情况

我添加了一个具有 2 个目标组和 2 个侦听器规则的 Application Load Balancer。两个目标组都指向同一个 EC2 实例以访问 SonarQube 和 Jenkins

  • 第一个监听器规则指向路径 /jenkins/ 到 ec2 实例的 8080 端口
  • 第二个侦听器规则指向路径 /sonar/ 上的 9000 端口,指向同一个 ec2 实例

我有一个用于指向域的 AWS Route53 RecordSet。这是 Route53 记录集的代码

健康检查已通过,我看到两个目标组都将相同的 ec2 注册为健康(一个用于声纳,另一个用于同一 ec2 上的詹金斯)

当我点击jenkins.mydomain.com/jenkinsJenkins 时加载得非常好,我可以使用它,但是当我点击sonar.mydomain.com/sonarSonar 时,它卡在“加载屏幕”上。当我检查页面时,我看到有一些 JS 文件 Sonar 无法找到(404 错误)并且 sonar 在加载时冻结。

这只发生在我放置应用程序负载平衡器时。当我通过 EC2 公共 IP 访问 Jenkins 和 Sonar 时,我可以很好地访问 Jenkins 和 Sonar。

声纳加载卡住

谁能帮我解决应用程序负载均衡器的这个问题?它应该像这样工作吗?

0 投票
2 回答
37 浏览

java - 如何在 AWS ElasticBeastalk Application Load Balancer 上运行的 Spring webapp 上获取请求者 IP

我有一个使用 Spring 作为后端框架用 Java 编写的 Web 应用程序。此应用程序在带有应用程序负载均衡器的 AWS ElasticBeanstalk 上运行。我想知道如何获取向我的网络应用程序发送请求的所有用户的 IP。

[编辑 1] 我注意到,只要这样做,我就能正确获得我的 IP 地址。

我不知道是否有特殊情况下这不起作用。