【问题标题】:How to serve a static website from S3 or Azure Blob with http status 503?如何从 S3 或 Azure Blob 提供具有 http 状态 503 的静态网站?
【发布时间】:2012-10-15 07:49:08
【问题描述】:

我正在寻找一种在将网站更新到新版本时从 Amazon S3 或 Azure Blob 存储服务“维护模式”网站的方法。我只想将 DNS 翻转以指向 maint.mydomain.com(这将是一个静态站点并返回 503 http 状态)。这可能与其中任何一个有关,还是我需要创建一个传统网站来托管它?

我可以让 S3 为网站提供服务,但它总是显示 HTTP 状态 200。有什么想法吗?

【问题讨论】:

    标签: azure amazon-web-services cdn


    【解决方案1】:

    我最终解决这个问题的方法是创建一个只有 app_offline.htm 的 Azure 部署。当我需要中断时,我只需将该包部署到生产环境中,并在进行数据库迁移时将下一个版本暂存。然后我将vip交换到新版本。

    这不好的部分是,一旦我切换到新版本,我以前的版本就不再等待暂存,但是我又只是更改了数据库架构,所以回滚可能在这种情况下涉及更多无论如何。

    【讨论】:

      【解决方案2】:

      您似乎还可以让亚马逊 s3 在维护期间为您的网站返回 404,方法是指定索引文件的错误路径并为错误页面提供正确的路径,当您在端点上点击任何 url 时总会返回该错误页面(包括根)。

      【讨论】:

        【解决方案3】:

        你正在接近这个错误。

        您应该运行多个实例,一个登台和一个生产。登台和生产都是“生产”代码,但登台用于实际部署您的更改。登台启动并运行后,您将翻转登台和生产实例(在 Azure 中,这称为 VIP 交换)。这允许用户体验“即时”升级(在引号中,因为仍有一些部分停机时间,如果用户在切换的确切时刻进入,您可能会收到错误)。

        【讨论】:

        • 顺便说一句,DNS 条目被各种实体缓存。更改您的 DNS 条目可能是即时的,但每个潜在用户可能需要数小时才能看到 DNS 更改。
        • 关于 dns 缓存的好点,但是有时升级不是即时的。我使用 azure 的 vip swap 进行大多数升级,但有时我需要为升级做更多事情,例如将数据库迁移到新架构。我需要停电。
        • 创建一个名为 app_offline.htm 的文件并将其放在站点的根目录中。这将自动使站点“离线”,所有请求都将获得 app_offline.htm 而不是他们请求的页面。删除或重命名文件以重新上线。
        猜你喜欢
        • 2017-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-01
        相关资源
        最近更新 更多