我目前有一个在 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 之类的编辑器。