1

我将 AWS Lightsail 负载均衡器与另一个 Lightsail ec2 实例结合使用,以便可以使用 Lightsail 负载均衡器中内置的免费证书管理器。这似乎会自动将所有流量从我的负载均衡器转发到我的 ec2 nginx 服务器,port 80以便以下配置也支持https连接:

server {
    listen       80;
    server_name  mountainviewwebtech.ca www.mountainviewwebtech.ca;

    location / {
        proxy_pass              http://localhost:3000;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
    }
}

但是,当我添加以下几行以确保http重定向到时https,我收到错误ERR_TOO_MANY_REDIRECTS消息,因为即使使用安全连接,我的 ec2-instance 也只会接收流量,port 80因此它只会一遍又一遍地重定向。

if ($scheme != https) {
    return 301 https://$host$request_uri;
}

$scheme在将其转发到我的 ec2 实例之前,无论如何要获取原件吗?

4

1 回答 1

0

如果您想要一个“免费”的 SSL 证书,使用 Let's Encrypt 的 CertBot 可以帮助您实现(并为您省钱)。我在这个选项上取得了很好的成功。

使用负载均衡器作为 SSL 终结器会结束负载均衡器上的安全连接。因此,未加密的流量从平衡器发送到计算实例(端口 80)。如果要将 SSL 流量转发到计算实例,请查看负载均衡器是否会进行端口转发。这就是 Lightsail,我怀疑这是否可能。

于 2018-10-31T18:55:35.593 回答