代码之家  ›  专栏  ›  技术社区  ›  Jakub Juszczak

如何将面向公共的负载平衡器连接到私有vpc中的ec2实例

  •  0
  • Jakub Juszczak  · 技术社区  · 6 年前

    背景

    我想在弹性豆茎上部署一个laravel应用程序。这个设置包括一个vpc,它有两个私有子网和两个公共子网。ec2、rds等都在私有子网中。

    只有易北河在公共区域。应该把所有的东西都交给私人的。

    发行

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

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

    不过,我想这些请求似乎已经通过并被正确地路由了。因为如果我检查弹性豆茎日志例如 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.

    不过,健康检查似乎效果不错。应用程序状态正常。

    基础设施

    • 1个专有网络
    • 2个专用子网
    • 2个公共子网

    易北河

    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

    1 回复  |  直到 6 年前
        1
  •  0
  •   John Hanley    6 年前

    看起来你的ELB配置正确。

    后端配置有问题。http服务正在返回http status 307,这是用于健康检查的临时重定向(除非我读错了日志文件,否则永远无法确定自定义日志格式的内容)。奇怪的是你有 307 307 在你的日志文件中。第一个307是http状态,第二个是请求返回的字节数。

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