注意 - 我看到其他几个关于重定向到其 S3 静态网站根目录的问题,但我没有看到任何关于从域名根目录重定向到CloudFront/S3 站点的任何内容。
我将我的个人网站部署到 AWS CloudFront 并静态托管在 S3 上。我有一个万维网。CNAME 记录指向 CloudFront 主机名,并且工作正常,但我发现您不能拥有域根目录的 CNAME 记录。我已经有一个带有 nginx 的 VPS,它托管了我的几个其他项目 - 只需将域根目录中的 A 记录添加到我的 VPS IP,并让 nginx 将对域根目录的请求重定向到 CloudFront 主机名,是否可以?
编辑:澄清 - 我希望将所有前往 example.com 的流量转发到分配给我的网站的 CloudFront 主机名。我可以通过为“www.”创建 CNAME 记录来使用www.example.com执行此操作。指向所需的主机名。但是,Google Domains 似乎不允许为根创建 CNAME 记录(即只是 example.com),所以我想知道如何将流量从 example.com 转发到我的 CloudFront 主机名(而不是我可以现在就做,这只是将www.example.com转发到 cloudfront)。
如果它是相关的,我不能做任何类型的通配符重定向,因为我在域上使用其他主机名用于需要特定 A 记录的不同项目。
这将是该站点的可接受/良好实践的 nginx 配置吗?我认为它会起作用,因为www.example.com已经正确转发到 CloudFront 主机名。
server {
listen 443 ssl;
server_name example.com;
rewrite ^/$ https://www.example.com permanent;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}
通过域根,我假设您的意思是 example.com,而不是www.example.com,并且您希望将其指向您的 AWS 云 Web 应用程序。您可以做的一件事是创建一个名为 @ 的 A 记录,该记录实质上是说“这是我。对我 (example.com) 的任何 DNS 请求都应该转到此 IP 地址。” 然后添加一个指向 @ 的 CNAME www。如果你愿意,你可以使用 Nginx,用于直通的 Nginx 只是一个反向代理。它将充当客户端和服务器之间任何请求的中间人。Nginx 只是在客户端和服务器之间重复这些消息。
我希望这有帮助,我的感觉是我读错了问题
如果您将域迁移到 AWS 的 Route53 服务,这非常容易。您只需使用向导创建别名记录,这是 route53 特定的功能。使用别名,您可以将区域顶点(您的
example.com
)指向 Cloudfront 分发,然后只需创建第二条记录,www
该记录也是 CF 分发的别名。在注册商之间迁移也很简单——去年我自己从 123-reg 迁移到 AWS,而且非常轻松。