AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 13804
Accepted
He Shiming
He Shiming
Asked: 2009-05-29 06:13:17 +0800 CST2009-05-29 06:13:17 +0800 CST 2009-05-29 06:13:17 +0800 CST

升级服务器软件无停电期

  • 772

假设我有一个在 Linux VPS 机器上运行的 Web 应用程序。为了应用内核升级和一些安全修复,我需要重新启动服务器。在此期间,服务器无法访问。我想知道此时是否可以向用户显示维护通知(通过 HTTP)。通知将由 PHP 脚本发送,该脚本将处理请求以 HTML 格式、图片或 Web 服务 XML 向客户端提供维护通知。或者,如果可能,提供部分运行的服务。

我需要什么样的硬件和软件才能做到这一点(请最低预算,我希望典型的 VPS/专用托管服务提供商可以支持这些)?

现在我已经知道我可以使用像 squid 这样的软件在 2 个 HTTP 服务器之间提供负载平衡。但是如果 squid 本身需要升级,或者托管 squid 的 CentOS 服务器需要升级,我该怎么办?另外,我实际上不需要负载平衡,如果我必须手动“切换”到维护模式就可以了。有任何想法吗?

提前致谢。

linux http deployment hosting redundancy
  • 6 6 个回答
  • 263 Views

6 个回答

  • Voted
  1. Stephen Touset
    2009-05-29T06:30:19+08:002009-05-29T06:30:19+08:00

    我们通常做的升级是用升级的组件(软件、硬件等)构建一台新机器。然后,我们将生产数据加载到系统上并对其进行彻底测试。准备好后,我们重新加载最新的生产数据,并将 DNS 指向新机器。

    这样,旧盒子和新盒子之间就可以持续使用。

    • 3
  2. Best Answer
    Brent
    2009-05-29T06:25:03+08:002009-05-29T06:25:03+08:00

    如果拥有这么长的正常运行时间对您很重要(即在 <5 分钟的服务器重新启动期间),那么我建议您设置第二个虚拟服务器。它可能非常小,运行 lighttp 和单个静态页面 - 或者它可能是您的实时站点的副本。

    然后在两台服务器上设置heartbeat2,并给它们一个共享的 IP 地址。当主机启动时,它会响应地址,但如果它下线,IP地址将在几秒钟内自动在第二台机器上提出。

    如果您决定在两台服务器上都放置一个完整版本的站点,除了heartbeat2之外,我还会安装ldirectord ,它是一个负载平衡器应用程序,将在与您的网络服务器相同的机器上运行。在这种情况下,当任一服务器停机时,甚至不会有几秒钟的停机时间。

    然后,如果您想变得花哨,您可以将您的网站内容和配置从nfs 共享安装到另一台服务器(或服务器集群)上,这样就不需要在网络服务器之间进行同步或复制。

    • 2
  3. Dave Drager
    2009-05-29T07:09:49+08:002009-05-29T07:09:49+08:00

    如果您需要在需要重新启动的服务器上进行升级,则至少需要一台备用计算机来托管临时站点,而原始计算机处于脱机状态。一种选择是在原始网站离线时使用具有低 TTL 的 DNS 指向新服务器。

    另一个像你说的是使用 squid 来代理。我相信 squid 也可以在具有多个 squid 服务器的循环 DNS 情况下工作。

    但是,如果选择采用这种方式,您所做的任何 DNS 传播都可能被下游服务器缓存。您可以尝试使用 30 秒的 TTL 或一些非常小的东西来缓解这种情况,但某些 DNS 服务器会忽略这一点,并且仍然将值缓存更长时间。

    如果您仍然要切换到维护模式,为什么不等 5 分钟重新启动并提前向用户发送通知呢?除了极高可用性的情况外,这应该在所有情况下都可以正常工作。

    • 2
  4. Brent
    2009-05-29T06:18:30+08:002009-05-29T06:18:30+08:00

    一些 DNS 提供商(例如 dnsmadeeasy.com)提供故障转移 dns服务。

    此服务将定期检查以确保您的主 IP 地址已启动,如果未启动,它将开始使用备用 IP 地址进行响应 - 这可能指向某处另一台主机上的“服务器不可用 - 请稍后重试”页面.

    但是,这可能不适合重新启动,因为 dns 条目上的 TTL 会阻止人们在重新启动所需的 2 或 3 分钟内获取故障转移页面。但是,它适用于更长(或计划外)的中断。

    • 1
  5. Steve Rao
    2009-05-29T06:40:37+08:002009-05-29T06:40:37+08:00

    查看 Zoneedit DNS。他们以非常低的成本提供 DNS 故障转移。

    • 1
  6. northpole
    2009-05-29T06:15:58+08:002009-05-29T06:15:58+08:00

    我建议只向网站上的用户发出通知,告知他们停电时间。然后在停电期间,他们会收到 404 或 500 错误。

    编辑:他们不会得到 404/500 而是超时错误。

    • 0

相关问题

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • 您最喜欢的云计算提供商是什么?[关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve