问题标签 [amazon-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 回答
1109 浏览

amazon-web-services - 在运行 express / nginx 的 ECS 服务之前,AWS ALB 出现间歇性 502 网关错误

背景:

我们正在运行一个通过 nginx 提供服务的单页应用程序,其中 node js (v12.10) 后端运行 express。它通过 ECS 作为容器运行,目前我们正在运行三个 t3a 介质作为我们的容器实例,其中每个运行 6 个副本的 api 和 Web 服务。我们使用 ALB 来处理我们的负载平衡/请求路由。我们在 3 个 AZ 上运行三个子网,负载均衡器与所有三个相关联,并且实例也分布在 3 个 AZ 上。

问题:

我们正试图找出一些间歇性 502 错误的根本原因,这些错误同时出现在前端和后端。我已经下载了 ALB 访问日志,所有这些请求的有趣之处在于它们都显示以下内容。- request_processing_time:0.000 - target_processing_time:0.000(有时这将是 0.001 或最多 0.004) - response_processing_time:-1

在出现这些错误时,我可以看到有可用的健康目标。

现在我知道有些人在服务器端比 ALB 端更短的 keepAlive 时间遇到了这样的问题,因此连接被强制关闭,然后 ALB 尝试重用(这符合故障排除指南在 AWS 上)。然而,当查看我们后端的 keepAlive 时间时,它们设置为比我们当前的 ALB 高一倍。此外,请求本身可以通过 chrome 开发工具重放并且它们成功(我不确定这是否是检查格式错误请求的有效方法,这似乎是合理的)。

我对这个领域非常陌生,如果有人对在哪里寻找或运行什么样的测试有一些建议,这可能有助于我查明这个问题,我将不胜感激。我在某些端点上运行了一些负载测试并复制了 502 错误,但是重负载下的错误与我在日志中看到的间歇性错误不同,因为 target_processing_time 非常高,所以在我看来,这完全是另一个问题。在这个阶段,我想了解显示 target_processing_time 基本上为零的错误。

0 投票
0 回答
462 浏览

amazon-web-services - 无法通过 ALB 访问 AWS Fargate 任务

我有一个作为 AWS ECS Fargate 任务运行的 Web 应用程序。该任务由 2 个 Docker 容器组成 - 暴露端口 80 的 nginx,作为反向代理运行,将查询转发到暴露端口 5000 的 asp.net 核心 Web 应用程序。在 nginx.conf 中为上游服务器配置的 url 是 127.0.0.1:5000,以及该任务是使用容器网络 (awsvpc) 设置的。

ECS 服务被定义为一个由 1 个任务组成的自动缩放组。当我运行该服务时,AWS 设置了一个具有公共和私有 ip 的弹性 ENI。我可以在浏览器中点击该公共 ip 并从我的网络应用程序中获取响应,因此 ECS 部分似乎设置正确。

接下来 - 我定义了一个带有 http 端口 80 侦听器的 ALB,该侦听器转发到 ECS 服务的目标组。目标组显示任务 ENI 的私有 ip,因此它似乎设置正确。健康检查被配置为简单的“/”,并且任务和 ALB 目标组报告它们是健康的。

但是 - 当我导航到 LB 的 DNS 名称时,我无法得到响应。

此外 - 这是在非默认 VPC 中运行的。路由表包括一个IGW。

不知道我还应该检查什么,所以希望能在进一步故障排除方面提供一些帮助。

0 投票
1 回答
593 浏览

node.js - 让 ALB 将端口 80 映射到节点服务器上的端口 3000

节点服务器在 3000 端口上运行,并且有一个 react 前端和一个 express 后端。我正在尝试使用 AWS ALB,以便我可以在端口 3000 上获得节点服务器提供的端口 80 请求。我没有运行 nginx 或 apache 或任何其他反向代理服务。

ec2 和 ALB 在同一个 VPC 和子网中,端口 80 和 3000 在 alb 和 ec2 上开放。我可以浏览端口 3000 上的 URL,但设置为 / 和端口 3000 的健康检查失败,我无法浏览端口 80 上的 URL。

如何使运行状况检查正常工作,还有什么我遗漏的东西会阻止我浏览端口 80 上的 URL?

0 投票
1 回答
61 浏览

amazon-web-services - AWS WAF 是否可以防止 GET 泛滥?

假设我有一个虚构的网站:https://myimaginarywebsite.com.

如果我试图利用它,并且我发出大量并发 GET 请求(源只是一个ip),WAF 是否有防止这种情况发生的功能?

由于这在技术上是有效的流量,但模式异常,我很好奇 AWS WAF 是如何处理这个问题的。

是否有一个我们可以添加的已经内置的 WAF 功能来防止这种情况,或者我们还需要在 WAF 中调整它吗?

0 投票
0 回答
126 浏览

amazon-web-services - 使用 WAF 在 AWS ALB 负载均衡器后面进行交换

我正在尝试配置以下设置:

  • 以 Exchange Server 为目标的 AWS ALB 负载均衡器
  • ALB 负载均衡器使用的 WAFv2

我还没有向 WAFv2 添加任何规则或组规则。

我希望能够在任何地方使用 Outlook,所以我试图查看 rpc 是否在此配置中工作。当我尝试...

rpcping /t ncacn_http /s internal.exchange.server.local /o RpcProxy=public.exchange.server.com /P "bobesponja,server.com,*" /H Basic /u NTLM /a connect /F 3 /e 6001

...我得到异常 1722 (0x000006BA)。

但是,如果我将 WAF 从负载均衡器中分离出来,rpcping上面的命令就会成功。

AWS 是否不可能/不支持“负载均衡器+WAFv2+Exchange”方案?

0 投票
0 回答
522 浏览

kubernetes - AWS kubernetes 入口 URL 不起作用

当我尝试创建 Ingress 时使用下面的模板,它正在创建但是当我点击主机 url 时它不起作用。在浏览器上出现错误“无法访问此页面”。你能建议一下吗?

0 投票
2 回答
1998 浏览

amazon-web-services - 是否可以更改 AWS WAF v2 上的 403 错误页面?

我正在使用 AWS WAF v2 和 ALB 进行地理封锁,设置已完成并且可以封锁特定国家。但是是否可以更改 AWS WAF v2 上的 403 错误页面?目前它中间的纯文本表示403 Forbidden。谢谢

0 投票
1 回答
309 浏览

javascript - 在启用 WAF 的情况下阻止托管在 Amazon ALB 中的 webapp 上的 AJAX Post 请求 - 以防表单数据包含空格字符

我的应用程序托管在 ALB 中并启用了 waf,在所有带有“任何空间*”一词的 ajax 请求上获得 403。例如,如果我有一个带有“test one”之类的输入的文本字段,那么当相同的数据传递给 ajax 数据时,会出现 403 错误。当我使用字符串化相同的数据时,错误不会出现。

如果 stringify 是唯一的方法,那么我的应用程序中有 1000 个 ajax 请求,有什么解决方法或建议吗?请指教。

0 投票
2 回答
388 浏览

amazon-web-services - 带有traefik的ec2-instance前面的aws WAF

我目前在 ec2-instance(aws) 上运行我的微服务,前面有 traefik/letencrypt。"WebBrowser" -> Internet -> (EC2 with traefik) 一切都很好。现在我想使用 AWS-WAF。但是,要使用这个 WAF 服务,我必须在我的 ec2-instance 和 WAF 服务之间插入一个应用程序负载均衡器。

"WebBrowser" -> Internet -> WAF -> ALB -> (EC2 with traefik)

第一个问题:这种方法看起来可行吗?第二个问题:有没有人有这方面的实践经验?目前,我尝试使用 terraform 构建 ALB 并收到一个错误,即至少“必须指定两个不同可用区中的两个子网”...

根据 aws 文档(https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html),这似乎是有意的:

“使用 Application Load Balancer,我们要求您启用多个可用区。”

嗯,我目前只有一台 ec2 机器来提供我所有的服务......

也许有人已经这样做了,并且可以为我指明正确的方向。

托马斯

0 投票
1 回答
48 浏览

amazon-web-services - AWS 设置:将单页静态应用程序前端移动到 S3(从 Web 服务器)

我当前的网站(带有 CORS + API 的单页应用程序)部署在 AWS EC2 实例上,并通过 ALB 提供服务(主要是为了更轻松地设置 HTTPS,因为我现在只覆盖一个区域)。Web 服务器被配置为为单页应用程序提供服务,但这就是它在前端所做的一切。我想将单页应用程序移至 S3,从而将后端与前端完全分开。问题是,就 AWS 设置而言,最有效的方法是什么?我可以想出以下几点:

  • 将域指向 S3 实例以提供前端文件,将 API 调用指向 ALB 公共 DNS 地址
  • 保持域原样指向 ELB,将端口 80 和 443 路由到 S3,更改 API 端口并将该端口路由到 EC2
  • ...

任何帮助表示赞赏。