有没有办法使用 NLB 来负载平衡 PHP-FPM + NGINX 的 HTTP 请求?

Is there a way to use NLB to load balance HTTP requests for PHP-FPM + NGINX?

到目前为止,我一直在带有 Application Load Balancer 的 ECS 上使用 PHP-FPM + Nginx,并且它正在运行。问题是使用 ALB 我们不能使用静态 IP 地址,如果我使用 NLB 而不是 ALB,这个问题就解决了。

但是NLB好像只使用TCP协议,不能负载均衡HTTP协议。有解决办法吗?

NLB 是低级别的,当请求到达时不知道您正在平衡 HTTP:从 NLB 的角度来看,它只是一个 TCP 请求。如果您不能在 nginx 中进行重定向,一种解决方案是在您的 NLB 之后使用另一个 ALB。 所以请求的流程将是:

Your User ---> NLB ---> ALB --> ...

ALB we cannot use static IP address

如果您想为您的 ALB 使用静态 public IP,您可以启用 AWS Global Accelerator:

Using an accelerator provides static IP addresses and improves the availability and performance of your applications.

A​​LB 支持加速器: