1. 在 S3 中创建存储桶并配置为静态网站托管
- 创建 S3 存储桶:
- 登录到AWS管理控制台,导航到S3服务。
- 点击“创建存储桶”,选择一个唯一的存储桶名称(建议与要使用的域名一致,如
example.com
),并选择存储桶的区域。 - 在 S3 控制台中,选择你的存储桶,点击“权限”标签,然后点击“Bucket Policy”(存储桶策略)和“Block Public Access”设置,确保允许公开访问或特定的CloudFront分发能够访问对象.
- 保持默认设置或根据需要自定义配置,完成存储桶的创建。
- 配置存储桶为静态网站托管:
- 选择你刚创建的存储桶,点击“属性”标签。
- 在“静态网站托管”选项中,选择“使用此存储桶托管网站”,并配置“索引文档”(如
index.html
)和“错误文档”(如error.html
)。 - 保存更改后,你会获得一个存储桶的静态网站终端URL(如
http://example.com.s3-website-us-east-1.amazonaws.com
)。
- 上传静态网站内容:
- 在存储桶中上传你的网站文件(HTML、CSS、JS、图片等)。确保所有文件的权限设置为公开,以便用户可以访问这些文件。
2. 申请并验证 SSL/TLS 证书
- 申请证书:
- 使用 AWS Certificate Manager (ACM) 申请一个 SSL/TLS 证书。进入ACM控制台,选择“Request a certificate”。
- 输入你要保护的域名(如
example.com
和.example.com
),并选择下一步。
- 选择验证方式:
- 你可以选择通过 DNS 验证 或 邮箱验证 来验证域名所有权。
- DNS 验证:推荐使用。ACM会生成一组CNAME记录,你需要将这些CNAME记录添加到你域名的DNS配置中。DNS记录生效后,证书会自动验证并颁发。
- 邮箱验证:ACM会发送验证邮件到域名相关的邮箱地址,收到邮件后点击验证链接完成验证。
- 证书颁发:
- 验证通过后,ACM将为你颁发SSL/TLS证书。此证书将用于CloudFront分发,以启用HTTPS访问。
3. 创建 CloudFront 分发并关联自定义域名
- 创建 CloudFront 分发:
- 在AWS管理控制台中,导航到CloudFront,选择“Create Distribution”。
- 选择“Web”分发类型,输入S3存储桶的静态网站终端URL作为“Origin Domain Name”。
- 在“Default Cache Behavior Settings”中,根据需要配置缓存策略和权限。
- 关联自定义域名:
- 在CloudFront的“Settings”部分,输入你要使用的自定义域名(如
www.example.com
或example.com
)。 - 选择你在ACM中申请的SSL/TLS证书,以启用HTTPS访问。
- 在CloudFront的“Settings”部分,输入你要使用的自定义域名(如
- 设置CNAME记录:
- 在你的DNS服务提供商中,为你的自定义域名(如
www.example.com
和example.com
)创建CNAME记录,指向CloudFront分发的域名(如d1234567890abcdef.cloudfront.net
)。 - 等待DNS记录生效,通常需要几分钟到几小时。
- 在你的DNS服务提供商中,为你的自定义域名(如
4. 完成设置并测试
- 测试网站访问:
- 通过你配置的自定义域名(如
www.example.com
)访问网站,确保CloudFront已经正确代理了S3存储桶的内容,并且启用了HTTPS。
- 通过你配置的自定义域名(如
- 监控与优化:
- 使用CloudFront和S3的监控工具,监控流量、性能和安全性。根据需要调整缓存策略和安全配置。
这样,静态网站将成功托管在S3上,并通过CloudFront分发到全球用户,同时启用了自定义域名和HTTPS保护。