【问题标题】:How to Deploy with a CDN?如何使用 CDN 进行部署?
【发布时间】:2015-01-06 06:46:40
【问题描述】:

我很惊讶我没有通过谷歌搜索找到答案。我目前没有任何 CDN 并通过 Ansible 运行我的部署。我正在考虑添加一个 CDN,但由于缓存只是间歇性地失效,我的理解是在我的服务器上部署不会更改我的 CDN 提供的静态文件可能几个小时。当然,当我进行部署时,我希望一切都尽可能快地完成,所以如果出现任何问题(或正确),我会立即知道。

说了这么多,我如何实际部署到 CDN,告诉它我现在正在提供一组新的静态文件并且它应该刷新这些文件?是否有一个 Ansible 模块可以做这样的事情,或者某个 CDN 提供商的 API?我真的很想避免在每次部署时手动执行此操作,例如 this 似乎暗示 Cloudflare。

另外,我目前正在将 CloudFlare 用于其他东西,所以坚持使用它们会很酷,但如果它更适合我的用例,我愿意切换到其他东西。

顺便说一句,这似乎是 CDN 的标准用例,但我找不到太多关于人们如何定期部署到 CDN 的文档或博客文章。我错过了什么吗?

【问题讨论】:

    标签: cdn ansible cloudflare


    【解决方案1】:

    是的,您可以执行清除/无效,但这不是最好的。真的,你想使用一个工具来编译*你的 CSS/SASS/任何东西,图像成精灵,并编译你的 JS。最后,该工具应该了解静态托管,这意味着它为每次发布使用唯一的 url。这样您就不必进行清除,这对 CDN 来说成本很高。

    谢天谢地,有一些工具可以处理这个问题。我知道Ruby's asset-pipelineGrails's asset-pipelinePython's webassets

    根据您构建代码和烘焙堆栈的方式,您可以使用 Ansible 上传/部署静态资产,尽管它们中的大多数都能够在本地部署或部署到 s3。

    【讨论】:

    • 简单来说,不是在内容更改时显式地使 CDN 无效,而是根据文件的内容(例如附加文件哈希)更改文件名以具有某种唯一性。
    猜你喜欢
    • 2012-10-20
    • 1970-01-01
    • 2019-04-14
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多