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 / 问题 / 103797
Accepted
dragonmantank
dragonmantank
Asked: 2010-01-19 07:20:11 +0800 CST2010-01-19 07:20:11 +0800 CST 2010-01-19 07:20:11 +0800 CST

基于 CentOS 的心跳代理

  • 772

我正在考虑为 Apache 和 MySQL 设置自动故障转移。我打算在两个 Apache 机器和两个 MySQL 机器前面放置一个小型代理服务器。Apache 会不时地从 master -> slave rsync 数据,并且 MySQL 将在 Master/Slave 中设置以进行复制。如果发生故障,备份盒可以接管,直到主服务器重建。

前面的代理服务器将仅作为带有某种心跳软件的交通警察运行(此时我不是在寻找负载平衡)。这样我就不必担心在主机出现故障的情况下更改我们的防火墙。Linux-HA是最佳选择还是有什么建议?

centos mysql apache-2.2 proxy high-availability
  • 2 2 个回答
  • 846 Views

2 个回答

  • Voted
  1. Best Answer
    Bernd Haug
    2010-01-19T07:47:35+08:002010-01-19T07:47:35+08:00

    Linux HA 是一个不错的工具集。如果您想要简单,请使用 heartbeat 1;heartbeat 2 用于超过 2 个节点的集群和 XML 配置。对于大多数简单的 2 节点情况,1 就足够了。

    但是,虽然我同意在您的应用程序前面有一个代理总是一个好主意(运行多个服务器作为来自一个虚拟服务器&c),但您所描述的设置听起来像是引入了一个新的 SPF:代理。

    在您的情况下,您可能最好的做法是以主动-主动配置运行两台服务器,包括两者上的完整 Web 服务和完整代理服务(!)。

    只需设置 heartbeat 接管三个 IP:一个用于活动 MySQL 服务器,一个用于活动 Web 服务器,一个用于活动代理(只有最后一个需要公开)。

    然后将代理设置为始终转到内部“活动 Web 服务器”IP,并将 Web 服务器设置为“活动数据库服务器”IP。

    当您准备好进行负载平衡配置时,您只需放弃 Web 服务器 IP 的切换,而是将两个 Web 服务器都放在代理的后端服务器组中。

    初始设置可能如下所示:

       Server A (Apache on Port 80)   Server A (Apache Port 8080)    Server A MySQL <-----------
                  |                \           |                 \        |                      \
    Web <-> Public Proxy IP         >-> Shared Private Web IP     >--> Shared Private MySQL IP    | Mysql Synchronization Link
                  |                /           |                 /        |                      /
       Server B (Apache on Port 80)   Server B (Apache Port 8080)    Server B MySQL <-----------
    

    然后,当您准备就绪时,您可以无缝地进入真正的负载平衡(如 Web 所述)和 MySQL 集群,而无需用户可见的更改。

    最重要的是:仍然立即将您的应用程序放在代理后面(即使代理“真的”只是相同的服务器)将在您的网络应用程序中暴露很多错误(关于链接创建中的主机名和路径的假设 &c)!

    • 2
  2. Rajat
    2010-01-19T07:25:23+08:002010-01-19T07:25:23+08:00

    http://studyhat.blogspot.com/2009/11/clustering-linux-ha.html

    以上链接可帮助您设置 Linux HA

    • 0

相关问题

  • 您如何跟踪和调试 mySQL 性能问题?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • 如何选择 MySQL 数据库引擎

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

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

    • 30 个回答
  • Marko Smith

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

    • 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
    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