问题标签 [aws-alb]

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 回答
279 浏览

node.js - AWS ALB 后面 EC2 中 Docker 上 NodeJS 的客户端超时

我在 EC2 实例上的 docker 容器中有一个 Koajs 节点应用程序。该应用程序位于 AWS Application Load Balancer 后面。

该应用程序只需获取一个 POST 文件并使用客户端可以查看事件的流进行响应。

所以我的服务器正在做正确的事情(发送文件数据),我的客户端正在做正确的事情(接收文件数据并发送回进度),但 ALB 超时。我不明白为什么它会超时。客户端和服务器都在相互发送和接收数据,所以我认为这符合保持活动流量的条件。

这是每个正在运行的代码。客户:

服务器:

服务器和客户端都在记录正确的事情,但是 ALB 只是在我设置的空闲超时时间超时。是否有一些技巧可以告诉 ALB 流量确实在流动?

非常感谢您提供的任何信息。

0 投票
1 回答
1544 浏览

amazon-web-services - 如何在 AWS 无服务器中应用基于 ip 的速率限制

假设我在 AWS 中运行无服务器 REST API。因此,我在 AWS lambda 中实现了我的 REST API,并且 lambda 使用 API 网关或应用程序负载均衡器通过 HTTP 公开。然后,我想保护我的 API 免受过度使用我的 API 的潜在黑客的攻击。因此,我想通过调用者的 IP 地址限制 API 调用频率。

我看到这可以通过 AWS WAF 使用基于速率的规则来完成。阅读文档时,最低阈值为 2000 次调用,每 5 分钟。这大约是每秒 7 个调用。这对我们的标准来说有点太大了。此外,不可能按分钟、小时、天等指定限制。所以它非常有限。

除了基于 AWS WAF 速率的规则之外,还有其他替代方法来实现基于 IP 的速率限制吗?

0 投票
2 回答
4926 浏览

kubernetes - Kubernetes ALB 入口:如何在入口资源上公开多个端口

我正在尝试为似乎很常见的问题找到解决方案。

  1. 我有一个 k8s 集群 ip 服务,它公开两个端口:8088 和 60004
  2. 我想在 ALB 上公开这些相同的端口,而不是使用基于路径的路由

这适用于在 8088 端口上公开一项服务:

如何使用 ONE ingress 为两种服务实现相同的目标?

提前致谢。

0 投票
1 回答
777 浏览

amazon-web-services - Ingress 不更新 ALB

我在 EKS 集群上运行 AWS 上的 ALB。我正在尝试在路由上应用 Ingress 资源的更改,以便它指向不同的后端。

下面的 Ingresses 的唯一区别是后端规范。

为什么更新不起作用?如何更新 ALB 上的路由?

原始入口:

更新入口:

控制器:

0 投票
2 回答
3930 浏览

amazon-web-services - AWS 负载均衡器允许 URL 路径上的某些 IP 地址

目前,我在 AWS 上使用应用程序负载均衡器设置了一个应用程序,目标组中有 2 个 EC2:

DNS -> AWS-ALB -> EC2(2)

我需要帮助,只允许应用程序 URL 上下文路径上的某些 IP 地址。

例如:www.abc.com 应该可供所有人访问,但 www.abc.com/xyz 应该只能对某些 IP 地址进行访问。

我在 EC2 上尝试了 NGINX 解决方案,并且仅当我使用允许和拒绝规则直接命中 EC2 IP 时才有效。

0 投票
1 回答
967 浏览

amazon-ec2 - 如何通过 AWS cloudfront 提供节点 js api?

我正在尝试通过云端 url 为我的节点 js API(部署在 AWS EC2 上并附加应用程序负载均衡器)提供服务,这可能吗?

这是我到目前为止所遵循的步骤 -

  1. 创建 S3 存储桶来托管静态网站托管
  2. 创建了云端分发并与它链接了 S3 存储桶。我可以使用从 clouddront 生成的默认 url 访问 S3 存储桶内容
  3. 为节点 js 实例创建自定义源
  4. 创建行为“api/*”以通过云端访问节点 js API。

但是当我尝试使用以下网址访问 API 时 -

http://d3m30a4naen9t2.cloudfront.net/api/getItems

它抛出“未找到”,它不是 404,此响应来自 EC2 服务器,但是存在指定的路由。

有人可以帮忙吗?

0 投票
2 回答
421 浏览

amazon-ec2 - AWS ALB 返回 502 而没有任何日志条目

我们使用在 ALB 后面的 AWS ECS 中运行的 node js 后端服务器。然后,我们有 AWS API 网关和调用 ALB 的代理 lambda。这已经在生产环境中运行了几个月,几天前突然我们开始看到来自一些 API 调用的 502 错误。

我检查了代理 lambda 日志以查看 502 是从 ALB 返回的。但是,当我检查我的节点应用程序日志时,没有失败的请求,实际上在这些时间戳似乎没有请求到达应用程序。然后我在 ALB 上启用了访问日志,它只显示 200/201 响应 - 没有 5xx。我现在有点困惑下一步该往哪里看。什么会导致我的 ALB 返回 502 而 ALB 访问日志中不存在此错误?什么可能导致请求无法到达我在 ECS 中的节点应用程序?有谁知道接下来要检查哪些日志或如何查明错误?ECS 中的某些层会导致这些症状吗?我在我的 docker 容器或任何东西中看不到任何错误。

它似乎是突然发生的,在一段时间内多达 50 个失败的请求,然后在几个小时内一切正常。

0 投票
1 回答
731 浏览

amazon-web-services - 如果我在 Cloudfront 上启用了 SSL,AWS ALB 是否需要 SSL?

我有一个托管在 AWS 上的应用程序。它在应用程序服务器前面有一个 ALB。为了处理巨大的负载,我还在 AWS Application Load Balancer (ALB) 前面添加了 Cloudfront。Cloudfront 针对动态网站内容进行了配置。我正在使用 CloudFront 的自定义域名以及 SSL 证书。

加载应用程序时,我收到如下错误:

(阻止:混合内容)

我认为,如果我们在 CloudFront 上启用 SSL,就足以确保类似于负载均衡器上的 SSL 卸载功能的安全性。

我们是否需要在 ALB 上启用 SSL 以避免此错误?

如果是,我们是否需要为 ALB 添加域名并颁发证书?

这个问题还有其他解决方法吗?任何帮助将不胜感激。

0 投票
0 回答
761 浏览

amazon-web-services - 如何在 AWS ALB 中实施客户端凭证授予

我正在尝试使用 OIDC 为授予类型的客户端凭据实现 ALB。

我在 ALB 的 Listeners 选项卡中给出了颁发者、令牌端点、客户端 ID 和客户端密钥、授权端点和用户信息端点

但是我在尝试访问 url 时得到 400 个无效的 redirect_uri。

0 投票
1 回答
1158 浏览

amazon-web-services - AWS Application Load Balancer - 转义路径模式字符

我在 EKS 中部署了一个 AWS ALB 入口控制器,k8s 创建了一个 AWS ALB 并创建了一些规​​则来转发流量:

正如文件所说:

https://docs.aws.amazon.com//elasticloadbalancing/latest/application/load-balancer-listeners.html

路径条件

您可以使用路径条件来定义根据请求中的 URL 路由请求的规则(也称为基于路径的路由)。路径模式仅应用于 URL 的路径,而不应用于其查询参数。路径模式区分大小写,最长可达 128 个字符,并且可以包含以下任何字符。

A–Z、a–z、0–9

_ - 。$ / ~ " ' @ : +

& (使用 &)

*。(匹配 0 个或多个字符)

? (精确匹配 1 个字符)


我有两个规则

我的网络应用程序中的URL是:

预期:将请求 3 转发到 YYY 的规则

我试过这个:

不走运,在文档中什么也没说,那么我怎样才能逃避连字符以将请求 3 转发给 YYY?

PD:我有大约 50 个带有连字符的 uri,我不想重写它们。