如何使用 Lightsail 负载均衡器将 http 转发到 https

如何使用 Lightsail 负载均衡器将 http 转发到 https

我目前有一个在 Lightsail 服务器上构建的应用程序。我使用 Amazon 证书通过负载均衡器创建 SSL https。在入站流量下,我必须使用协议

Http Enabled
Https Enabled.

当我去https://app.myexample.com果然,我顺利获得了 SSL 证书。不过,我想将 http 转发到 https。当您访问http://app.myexample.com您没有获得安全连接(显然)。我如何强制 http 转为 https?

我本来打算使用 .htaccess 文件来做这件事,但我在某处读到应该通过负载均衡器来完成。不幸的是,所有关于此的文档仅适用于 Elastic Beanstalk。我正在使用 Lightsail。我如何在 Lightsail 上完成此操作? 在此处输入图片描述

答案1

在 Lighsail 服务级别上没有办法做到这一点,但是!
AWS 负载均衡器进一步传递 http_x_forwarded_proto 标头。
可以在您的应用程序、Web 服务器级别上进行重定向。
我正在使用 nginx Web 服务器,那里的配置如下所示

server {
    listen 80;
    listen [::]:80;
    location / {
        if ($http_x_forwarded_proto = "http") {
            return 301 https://$server_name$request_uri;
        }
    }
       
}

答案2

此解决方案对我有用。

  • 这是一个实例级解决方案,因此您应该分离除一个实例之外的所有实例。
  • 更新所有设置后,请确保拍摄快照以便在创建新实例时使用它。
  • 这需要一些文件更新,因此您可能需要使用 Vim 之类的编辑器。

相关内容