我有一个通过Netlify托管的静态站点(mysite.com
)。 Netlify当前管理我的DNS,因此我拥有这样的名称服务器:
dns1.p07.nsone.net
dns2.p07.nsone.net
dns3.p07.nsone.net
dns4.p07.nsone.net
我的S3上有一个名为
dl.mysite.com
的存储桶。我想要它,以便当有人单击诸如http://dl.mysite.com/file.pdf
的链接时,它从S3存储桶中获取它。在Netlify的管理仪表板中,我能够创建一个自定义子域(
dl.mysite.com
),它指示我执行以下操作:过去,当我专门使用AWS托管应用程序和管理DNS时,只需在Route53中为子域创建Alias记录并将其指向我的存储桶即可轻松实现。
既然Route53无法处理我的DNS,我该如何做到这一点?还有可能将该子域指向特定的S3存储桶吗?
最佳答案
免责声明:我为Netlify工作。
Netlify旨在承载Web内容,而不是完全代理S3存储桶。按照您的描述使用它可能会奏效,但与我们的terms of service背道而驰。https://www.netlify.com/docs/redirects/特别声明我们打算托管包含html内容供人们浏览的网站,而不是计算机。如果这真的是您想要做的-从S3存储桶中提供内容,那么我在这里完全不用担心使用Netlify的中间步骤。这是另一个失败点,它并不能使您在访问者和S3之间吸引我们。一种更合理的方法是上面建议的@thomas。
但是,如果由于我们为您托管其他站点,而您想为您的域使用Netlify的DNS托管,则绝对可以使用我们的DNS来设置直接指向S3的主机名-那里没有违反服务条款,因为我们不要限制您对我们的DNS服务的使用。许多客户让我们为域名托管DNS,这些域名在netlify上有一个网站,在其他地方有十二个。要进行配置,我将将该记录设置为CNAME到S3主机名,并在AWS端处理任何SSL证书。这将很好地工作,如果没有,我们的技术支持团队将很高兴为您提供帮助。
在第三种情况下,如果您想通过S3在该主机名上为提供一些内容(例如PDF),然后再提供其他一些内容(例如您的链接到PDF的网站html文件),那是合法的!我们很乐意代理您的S3内容。例如,您可以在/files/*
文件中像这样在S3上为/_redirects
设置(反向)代理:/files/* http://aws-bucket-hostname/:splat 200!
这表示“从Netlify EXCEPT / files / *加载所有文件,这些文件应该来自S3,并且路径与URL中/ files /之后的部分匹配”。在这种情况下,由于我们终止浏览器连接而不是S3,因此我们将为您处理SSL证书。
有关此功能的更多文档,请点击此处:
ojit_a