You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CNAME将Netlify子域名指向AWS S3存储桶?

没问题,我一步步帮你搞定这个配置,让dl.mysite.com直接指向你的S3存储桶。既然你的主域名DNS由Netlify管理,只要把S3和Netlify的配置做好就行:

配置步骤

1. 先确保你的S3存储桶配置正确

要让用户能直接通过子域名访问S3里的文件,首先得把存储桶的权限和托管设置弄对:

  • 打开AWS S3控制台,找到你的dl.mysite.com存储桶。
  • 开启静态网站托管(在「属性」标签页里找这个选项),开启后会生成一个S3网站端点,比如dl.mysite.com.s3-website-us-east-1.amazonaws.com(具体地址取决于你的存储桶区域),把这个地址记下来,后面要用。
  • 配置桶策略,允许公开访问文件(如果需要用户直接下载的话)。可以在「权限」标签页的「桶策略」里添加如下内容(记得替换成你的存储桶名):
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::dl.mysite.com/*"
        }
    ]
}
  • 另外,确保存储桶里的文件(比如file.pdf)的权限设置为「公有读」,或者通过桶策略统一控制访问权限。

2. 在Netlify中配置子域名和DNS记录

接下来回到Netlify控制台,把dl.mysite.com的DNS指向S3:

  • 登录Netlify,找到你的主站点mysite.com的项目,进入域名设置页面。
  • 在「域名管理」区域点击添加域名别名,输入dl.mysite.com,然后确认添加。
  • 切换到DNS设置标签页,点击添加记录:
    • 记录类型选择CNAME
    • 主机名填dl(这样对应的就是dl.mysite.com)
    • 值填你之前记录的S3静态网站端点(比如dl.mysite.com.s3-website-us-east-1.amazonaws.com,不要加http://或https://)
    • TTL保持默认的300秒(5分钟)就行,保存这条记录。

3. 验证配置是否生效

  • 等待几分钟让DNS记录生效(TTL是300秒的话,最多5分钟就会更新)。你可以用命令行工具验证:
    nslookup dl.mysite.com
    # 或者用dig
    dig dl.mysite.com
    
    查看输出里的CNAME记录是否指向你设置的S3端点。
  • 直接访问http://dl.mysite.com/file.pdf,如果能正常下载文件,就说明配置成功了。如果遇到403错误,检查S3的桶策略或文件权限;如果是404,确认文件确实在存储桶的对应路径下。

额外注意事项

  • 如果需要支持HTTPS访问,直接用S3的静态网站端点可能不行(因为S3的默认SSL证书只针对*.s3-website-*.amazonaws.com这类域名)。这时候可以考虑用AWS CloudFront做CDN,绑定自己的SSL证书(可以在AWS Certificate Manager免费申请),然后把Netlify的CNAME指向CloudFront的域名,这样就能实现HTTPS访问了。
  • 一定要确保S3存储桶的名称和子域名dl.mysite.com完全一致,这是S3要求的,否则CNAME解析会出问题。

内容的提问来源于stack exchange,提问作者Ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:10:25