问题标签 [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.
cookies - AWS 应用程序负载均衡器规则不适用于 cookie?可能出了什么问题?
我在公司的开发运营团队工作。最近,我们转向了 aws 的应用程序负载均衡器,我们正在根据 cookie 的值转发请求。由于某种原因,该规则不起作用,AWS 不支持通过日志来获取有关规则失败原因的信息。
这可能有两个原因,我们可以想到:
负载均衡器无法读取 cookie:我们认为这不是问题,因为此负载均衡器下的应用程序能够读取并打印 cookie。
负载均衡器在第一次请求后不会读取后续的 cookie:我们已经向 AWS 提出了一个问题,他们仍然会回来。
同时,谁能指出我们可能忽略的任何问题?
amazon-web-services - 自定义路径的别名
我有 AWS ELB DNS 名称(Testing-QA-7849049.ap-south-1.elb.amazonaws.com)
它具有基于路径配置的路由
例如:Testing-QA-7849049.ap-south-1.elb.amazonaws.com/qa/index.html ---> 将指向 qa 服务器 Testing-QA-7849049.ap-south-1.elb.amazonaws。 com/qa1/index.html --> 将指向 qa1 服务器
现在我希望我的客户域成为这个名称的别名。
例如:
测试-QA-7849049.ap-south-1.elb.amazonaws.com/qa/index.html ---> mydomain/index.html
我怎样才能做到这一点。Go daddy 不允许 / 指向字段。
amazon-web-services - 将 AWS Application Load Balancer 的可见性更改为内部负载均衡器
我创建了一个应用程序负载均衡器并将其设置为公共。我已经对某些东西进行了分叉,并希望将其转换为内部负载均衡器,以便仅向 VPC 资源公开。但是当我将可见性选项从“公共”更改为“内部”时,我收到了这个错误 -
amazon-web-services - AWS Application Load Balancer 中将 HTTP 重定向到 HTTPS 将 POST 请求转换为 GET 请求
我使用 AWS 中的 Application Load Balancer 作为 API 网关:用于将请求转发到 AWS 中运行的不同应用程序。我已经为它配置了对 HTTP 和 HTTPS 的支持。HTTPS 侦听器包含请求转发的所有逻辑规则。HTTP 侦听器配置了一条规则:将所有流量重定向到 HTTPS 侦听器 ({host}:443/#{path}?#{query}) 并返回 301。
HTTPS 完美运行。HTTP 适用于 GET 请求。但是我发现对 HTTP 的 POST 请求在重定向到 HTTPS 时会转换为 GET 请求,这显然以 404 结束。
我在网上发现问题处于 301 状态(https://rtfm.co.ua/en/http-redirects-post-and-get-requests-and-lost-data/#The_root_cause_3xx_redirects_and_HTTP_RFC)。但不幸的是,AWS ALB 规则中没有选项可以重定向请求并返回 307 而不是 301。
那么有谁知道我该如何解决这个问题?谢谢!
nginx - Elastic Beanstalk WebSocket 连接断开
在 Elastic Beanstalk 和 Application Load Balancer 后面,我在 Embedded Jetty 上有一个 WebSockets 应用程序。
问题是连接在一分钟后被断开。尽管如此,我已经将 Application Load Balancer 的空闲超时设置为 300 秒(这是 Jetty 的默认超时)。
因此,我做了一些研究,我现在认为这是 Nginx 施加的超时,所以我按照这里的答案。
我无法使用这样格式的 .ebextension 进行部署。Elastic Beanstalk 会告诉我要替换的文件不存在。之后,我遇到了这篇文章,所以我想出了以下脚本:
这样,我现在就可以部署了。但是,WebSockets 连接在一分钟后继续被丢弃。
谁能指出我做错了什么或者我接下来可以尝试什么?
请,任何帮助将不胜感激。
amazon-web-services - 在 AWS ALB 后面的容器上获取客户端真实 IP
我在 AWS Application Load Balancer 后面的 EC2 实例中运行单个容器。
容器使用 network_mode=host 运行并显示请求信息和标头的简单 JSON。问题是,我没有得到客户端真实 IP。相反,我在标头中获得了一个内部 IP X-Forwarded-For
。
还:
- ALB 方案是内部的
- 我们使用企业代理
我错过了什么?
JSON 响应:
amazon-web-services - 将 ALB 的目标组附加到 Auto-scaling 组
我们知道,为了为自动扩展组附加应用程序/网络负载均衡器,我们需要将目标组附加到现有的自动扩展组以分配负载。在 Classic Load Balancer 的情况下,我们直接将负载均衡器附加到 ,ASG
但在 的情况下ALB
,我们通过由目标组成的目标组来完成,这些目标可以是实例、IP 或 lambda 函数。
我的问题是,这些目标组中的实例是为 ALB 定义的,还是ASG
不同的?或者他们是一样的?如果它们相同,那么我们是否必须再次创建一个新的目标组,其中目标定义为 中的EC2
实例ASG
?我无法理解目标组中的实例到 ASG 中的实例的映射。我浏览了将负载均衡器附加到现有的文档ASG
,但它所说的只是选择一个现有的目标组。
amazon-web-services - AWS ALB OIDC 身份验证 cookie 域问题
我有一个 AWS Cloudfront 托管网页,它从 S3 获取静态页面并调用自定义源 (ALB) 以获取动态数据。ALB 上启用了 OIDC 身份验证,因此对自定义源(我的 API)的调用通过 ALB 中设置的规则传递。
在特定情况下,当我对自定义源的请求未经身份验证时,我被重定向到 IdP 进行登录,成功登录后,我在响应标头中获取 cookie,因为此请求是从 ALB 发送到 IdP - 发出的 cookie 的域为 ALB DNS . 为了让我的网页使用这个 cookie,我必须将调用重定向到 Cloudfront URL。现在 cookie 已发送给具有不同 DNS 的 ALB,而我的 Cloudfront URL 具有不同的 DNS,因此我无法使用 cookie。
我试图捕捉 cookie 值,但因为它是为不同的域发布的,所以我无法捕捉到,作为设计的一部分,我觉得这是错误的。有人面临类似类型的问题。