【问题标题】:How do I connect a public-facing load balancer to EC2 instances in a private VPC如何将面向公众的负载均衡器连接到私有 VPC 中的 EC2 实例
【发布时间】:2019-03-26 15:02:49
【问题描述】:

背景

我想将 laravel 应用程序部署到 Elastic Beanstalk。该设置包括一个具有两个私有子网和两个公有子网的 VPC。 EC2、RDS 等都在私有子网中。

只有 ELB 在公共的。并且应该将所有内容路由到私有的。

问题

如果我尝试通过 ELB 连接,我会收到 TIMEOUT 错误。

我不确定这是配置问题(VPC/子网)还是应用程序 (EB) 错误。

我猜,这些请求似乎通过并正确路由。因为如果我检查 Elastic Beanstalk 日志,例如 httpd/access.log

我看到了通过 ELB 发出的请求。

13:38:20 10.0.2.52 (94.79.175.190) - - [22/Oct/2018:13:38:19 +0000] "GET /loadbalancertest HTTP/1.1" 307 307 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.

不过,健康检查似乎工作正常。并且应用状态OK。

基础设施

  • 1 个 VPC
  • 2 个私有子网
  • 2 个公共子网

ELB

ELB 位于两个公共子网中。

ELB 安全组设置

入站:HTTP / TCP / 80 / 0.0.0.0/0

出站:HTTP / TCP / 80 / 0.0.0.0/0


EC2 实例(由 EB 创建)

VPC 安全组设置

入站:HTTP / TCP / 80 / sg-03xxxxx (ELB SG)

出站:所有流量/0.0.0.0/0

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk amazon-vpc


    【解决方案1】:

    看起来您的 ELB 配置正确。

    您的后端配置有问题。 HTTP 服务返回 HTTP 状态 307,这是您的健康检查的临时重定向(除非我读错了您的日志文件 - 您永远无法确定自定义日志格式是什么)。奇怪的是您的日志文件中有307 307。第一个 307 是 HTTP 状态,第二个是请求返回的字节数。

    连接到您的一个后端实例,然后使用 curl 连接到另一个后端实例并验证运行状况检查 URL 是否正常工作。然后验证默认主页是否也正常工作。

    【讨论】:

      猜你喜欢
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-01
      • 2018-05-25
      相关资源
      最近更新 更多