如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群
Pacemaker是一款适用于类Linux操作系统的高可用性集群软件。Pacemaker 被称为“集群资源管理器”,它通过在集群节点之间进行资源故障转移来提供集群资源的最大可用性。Pacemaker 使用 Corosync 进行集群组件之间的心跳和内部通信,Corosync 还负责集群中的投票选举(Quorum)。
先决条件
在我们开始之前,请确保你拥有以下内容:
- 两台 RHEL 9/8 服务器
- Red Hat 订阅或本地配置的仓库
- 通过 SSH 访问两台服务器
- root 或 sudo 权限
- 互联网连接
实验室详情:
- 服务器 1:node1.example.com(192.168.1.6)
- 服务器 2:node2.exaple.com(192.168.1.7)
- VIP:192.168.1.81
- 共享磁盘:
/dev/sdb
(2GB)
事不宜迟,让我们深入了解这些步骤。
1、更新 /etc/hosts 文件
在两个节点上的 /etc/hosts
文件中添加以下条目:
192.168.1.6node1.example.com192.168.1.7node2.example.com
2、安装高可用包 Pacemaker
在 RHEL 9/8 的默认包仓库中无法获取 Pacemaker 和其他必要的软件包。因此,我们必须启用高可用仓库。在两个节点上运行以下订阅管理器命令。
对于 RHEL 9 服务器:
$ sudo subscription-manager repos --enable=rhel-9-for-x86_64-highavailability-rpms
对于 RHEL 8 服务器:
$ sudo subscription-manager repos --enable=rhel-8-for-x86_64-highavailability-rpms
启用仓库后,运行命令在两个节点上安装 pacemaker
包:
$ sudo dnf install pcs pacemaker fence-agents-all -y
如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群
3、在防火墙中允许高可用端口
要允许防火墙中的高可用端口,请在每个节点上运行以下命令:
$ sudo firewall-cmd --permanent --add-service=high-availability$ sudo firewall-cmd --reload
4、为 hacluster 用户设置密码并启动 pcsd 服务
在两台服务器上为 hacluster
用户设置密码,运行以下 echo
命令:
$ echo "<Enter-Password>" | sudo passwd --stdin hacluster
执行以下命令在两台服务器上启动并启用集群服务:
$ sudo systemctl start pcsd.service$ sudo systemctl enable pcsd.service
5、创建高可用集群
使用 pcs
命令对两个节点进行身份验证,从任何节点运行以下命令。在我的例子中,我在 node1
上运行它:
$ sudo pcs host auth node1.example.com node2.example.com
使用 hacluster
用户进行身份验证。
使用下面的 pcs cluster setup
命令将两个节点添加到集群,这里我使用的集群名称为 http_cluster
。仅在 node1
上运行命令:
$ sudo pcs cluster setup http_cluster --start node1.example.com node2.example.com$ sudo pcs cluster enable --all
这两个命令的输出如下所示:
从任何节点验证初始集群状态:
$ sudo pcs cluster status
注意:在我们的实验室中,我们没有任何防护设备,因此我们将其禁用。但在生产环境中,强烈建议配置防护。
$ sudo pcs property set stonith-enabled=false$ sudo pcs property set no-quorum-policy=ignore
6、为集群配置共享卷
在服务器上,挂载了一个大小为 2GB 的共享磁盘(/dev/sdb
)。因此,我们将其配置为 LVM 卷并将其格式化为 XFS 文件系统。
在开始创建 LVM 卷之前,编辑两个节点上的 /etc/lvm/lvm.conf
文件。
将参数 #system_id_source = "none"
更改为 system_id_source = "uname"
:
$ sudo sed -i 's/# system_id_source = "none"/ system_id_source = "uname"/g' /etc/lvm/lvm.conf
在 node1
上依次执行以下一组命令创建 LVM 卷:
$ sudo pvcreate /dev/sdb$ sudo vgcreate --setautoactivation n vg01 /dev/sdb$ sudo lvcreate -L1.99G -n lv01 vg01$ sudo lvs /dev/vg01/lv01$ sudo mkfs.xfs /dev/vg01/lv01
将共享设备添加到集群第二个节点(node2.example.com
)上的 LVM 设备文件中,仅在 node2
上运行以下命令:
[sysops@node2 ~]$ sudo lvmdevices --adddev /dev/sdb
7、安装和配置 Apache Web 服务器(httpd)
在两台服务器上安装 Apache web 服务器(httpd),运行以下 dnf
命令:
$ sudo dnf install -y httpd wget
并允许防火墙中的 Apache 端口,在两台服务器上运行以下 firewall-cmd
命令:
$ sudo firewall-cmd --permanent --zone=public --add-service=http$ sudo firewall-cmd --permanent --zone=public --add-service=https$ sudo firewall-cmd --reload
在两个节点上创建 status.conf
文件,以便 Apache 资源代理获取 Apache 的状态:
$ sudo bash -c 'cat <<-END > /etc/httpd/conf.d/status.conf<Location /server-status>SetHandler server-statusRequire local</Location>END'$
修改两个节点上的 /etc/logrotate.d/httpd
:
替换下面的行
/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
为
/usr/bin/test -f /run/httpd.pid >/dev/null 2>/dev/null &&/usr/bin/ps -q $(/usr/bin/cat /run/httpd.pid) >/dev/null 2>/dev/null &&/usr/sbin/httpd -f /etc/httpd/conf/httpd.conf \-c "PidFile /run/httpd.pid" -k graceful > /dev/null 2>/dev/null || true
保存并退出文件。
8、为 Apache 创建一个示例网页
仅在 node1
上执行以下命令:
$ sudo lvchange -ay vg01/lv01$ sudo mount /dev/vg01/lv01 /var/www/$ sudo mkdir /var/www/html$ sudo mkdir /var/www/cgi-bin$ sudo mkdir /var/www/error$ sudo bash -c ' cat <<-END >/var/www/html/index.html<html><body>High Availability Apache Cluster - Test Page </body></html>END'$$ sudo umount /var/www
注意:如果启用了 SElinux,则在两台服务器上运行以下命令:
$ sudo restorecon -R /var/www
9、创建集群资源和资源组
为集群定义资源组和集群资源。在我的例子中,我们使用 webgroup
作为资源组。
-
web_lvm
是共享 LVM 卷的资源名称(/dev/vg01/lv01
) -
web_fs
是将挂载在/var/www
上的文件系统资源的名称 -
VirtualIP
是网卡enp0s3
的 VIP(IPadd2
)资源 -
Website
是 Apache 配置文件的资源。
从任何节点执行以下命令集。
$ sudo pcs resource create web_lvm ocf:heartbeat:LVM-activate vgname=vg01 vg_access_mode=system_id --group webgroup$ sudo pcs resource create web_fs Filesystem device="/dev/vg01/lv01" directory="/var/www" fstype="xfs" --group webgroup$ sudo pcs resource create VirtualIP IPaddr2 ip=192.168.1.81 cidr_netmask=24 nic=enp0s3 --group webgroup$ sudo pcs resource create Website apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" --group webgroup
现在验证集群资源状态,运行:
$ sudo pcs status
很好,上面的输出显示所有资源都在 node1
上启动。
10、测试 Apache 集群
尝试使用 VIP(192.168.1.81)访问网页。
使用 curl
命令或网络浏览器访问网页:
$ curl http://192.168.1.81
或者
完美!以上输出确认我们能够访问我们高可用 Apache 集群的网页。
让我们尝试将集群资源从 node1
移动到 node2
,运行:
$ sudo pcs node standby node1.example.com$ sudo pcs status
完美,以上输出确认集群资源已从 node1
迁移到 node2
。
要从备用节点(node1.example.com
)中删除节点,运行以下命令:
$ sudo pcs node unstandby node1.example.com
以上是如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

根据基准测试,Laravel在页面加载速度和数据库查询方面表现出色,而CodeIgniter在数据处理方面表现优异。选择PHP框架时,应考虑应用程序规模、流量模式和开发团队技能。

Go中通过Goroutine和并发控制工具(如WaitGroup、Mutex)实现并发编程,可使用第三方库(如sync.Pool、sync.semaphore、queue)扩展其功能。这些库可优化并发操作,如任务管理、资源访问限制和代码效率提升。一个使用队列库处理任务的示例展示了第三方库在实际并发场景中的应用。

并发测试和调试Java并发编程中的并发测试和调试至关重要,以下技术可供使用:并发测试:单元测试:隔离并测试单个并发任务。集成测试:测试多个并发任务之间的交互。负载测试:评估应用程序在高负载下的性能和可扩展性。并发调试:断点:暂停线程执行并检查变量或执行代码。日志记录:记录线程事件和状态。堆栈跟踪:识别异常源头。可视化工具:监视线程活动和资源使用情况。

有多种可以导致网站下线的攻击方法,比较复杂的方法要涉及数据库和编程方面的技术知识。一个更简单的方法被称为“拒绝服务DenialOfService”(DOS)攻击。这个攻击方法的名字来源于它的意图:使普通客户或网站访问者的正常服务请求被拒绝。一般来说,有两种形式的DOS攻击:OSI模型的三、四层,即网络层攻击OSI模型的七层,即应用层攻击第一种类型的DOS攻击——网络层,发生于当大量的垃圾流量流向网页服务器时。当垃圾流量超过网络的处理能力时,网站就会宕机。第二种类型的DOS攻击是在应用层,是利用合

要将服务器添加到 Eclipse,请执行以下步骤:创建服务器运行时环境配置服务器创建服务器实例选择服务器运行时环境配置服务器实例启动服务器部署项目

一、58画像平台建设背景首先和大家分享下58画像平台的建设背景。1.传统的画像平台传统的思路已经不够,建设用户画像平台依赖数据仓库建模能力,整合多业务线数据,构建准确的用户画像;还需要数据挖掘,理解用户行为、兴趣和需求,提供算法侧的能力;最后,还需要具备数据平台能力,高效存储、查询和共享用户画像数据,提供画像服务。业务自建画像平台和中台类型画像平台主要区别在于,业务自建画像平台服务单条业务线,按需定制;中台平台服务多条业务线,建模复杂,提供更为通用的能力。2.58中台画像建设的背景58的用户画像

要成功部署和维护PHP网站,需要执行以下步骤:选择Web服务器(如Apache或Nginx)安装PHP创建数据库并连接PHP上传代码到服务器设置域名和DNS监控网站维护步骤包括更新PHP和Web服务器、备份网站、监控错误日志和更新内容。

在Java中,函数包管理和版本控制集成至关重要,使用Maven管理依赖关系,使用Git进行版本控制。集成步骤包括初始化Git仓库、创建Maven函数包信息文件、将其添加到Git仓库中。实战案例中,添加CommonsLang依赖关系,使用Maven下载并将其添加到Git仓库中,以确保团队使用相同的依赖关系版本。
