keepalived+nginx+nfs搭建高可用
·
keepalived+nginx+nfs搭建高可用
使用keepalived+nginx+nfs搭建高可用:就是主从节点安装完keepalived+nginx后,nfs服务器创建一个NGINX的欢迎页面,然后再暴露出去,让主从节点访问的NGINX的欢迎页面是由nfs服务器提供的。
使用RedHat/CentOS Stream9系列的Linux系统进行部署搭建操作。
| IP地址 | 主机名 | 软件 | 节点 |
|---|---|---|---|
| 192.168.194.128 | master | keepalived+nginx+nfs-utils | 主节点 |
| 192.168.194.131 | backup | keepalived+nginx+nfs-utils | 从节点 |
| 192.168.194.130 | nfs | nsf-utils | 暴露共享文件节点 |
| 这里的三个IP地址需要改为自己实际的IP地址 |
0 系统必要设置
# 1. 设置主机名
[root@localhost ~]# hostnamectl set-hostname master && bash
[root@localhost ~]# hostnamectl set-hostname backup && bash
[root@localhost ~]# hostnamectl set-hostname nfs && bash
# 2. 修改IP地址
[root@master ~]# nmcli c m ens160 ipv4.method manual ipv4.addresses 192.168.194.128/24 ipv4.gateway 192.168.194.2 ipv4.dns 223.5.5.5 con nection.autoconnect yes
[root@master ~]# nmcli c up ens160
[root@backup ~]# nmcli c m ens160 ipv4.method manual ipv4.addresses 192.168.194.131/24 ipv4.gateway 192.168.194.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@backup ~]# nmcli c up ens160
[root@nfs ~]# nmcli c m ens160 ipv4.method manual ipv4.addresses 192.168.194.130/24 ipv4.gateway 192.168.194.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@nfs ~]# nmcli c up ens160
# 3. 关闭selinux
[root@master ~]# getenforce
Enforcing
[root@master ~]# sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config
[root@master ~]# getenforce
Enforcing
[root@master ~]# setenforce 0
[root@master ~]# getenforce
Permissive
[root@backup ~]# sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config
[root@backup ~]# setenforce 0
# 4. 关闭防火墙
[root@master ~]# systemctl disable --now firewalld.service
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@backup ~]# systemctl disable --now firewalld.service
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
以上的所有操作这三台虚拟机都需要执行。
1 搭建
步骤:
- 第0步,先搭建主从keepalived+nginx节点;
- 第1步,在nfs上搭建nfs-utils并暴露要共享的目录;
- 第2步,在主从节点上进行nfs配置
这第0步可以参考第一点keepalived+nginx的搭建,和这个一模一样,接着才是搭建在三台服务器上搭建nfs
第一步:
在 nfs-server(192.168.194.130) 上配置 NFS 服务
安装 nfs-utils
dnf install -y nfs-utils
创建共享目录
mkdir -p /var/nfs/nginx-html
放入测试网页(Nginx 欢迎页)
echo "<h1>Welcome from NFS Shared Storage! </h1>" | sudo tee /var/nfs/nginx-html/index.html
设置权限(关键!)
chown -R nobody:nobody /var/nfs/nginx-html
chmod -R 755 /var/nfs/nginx-html
配置 /etc/exports
允许主从 Nginx 节点访问:
vim /etc/exports
# 内容如下:
/var/nfs/nginx-html 192.168.194.128(rw,sync,no_subtree_check) 192.168.194.131(rw,sync,no_subtree_check)
# 192.168.194.128和192.168.194.131是主从节点
启动 NFS 服务
systemctl start nfs-server
exportfs -rav # 重新加载 exports
防火墙放行(如果启用 firewalld)
firewall-cmd --permanent --add-service={nfs,mountd,rpc-bind}
firewall-cmd --reload
到此,NFS 服务器配置完成!
第二步:
在 nginx-master(192.168.194.128) 和 nginx-backup(192.168.194.131) 上挂载 NFS
在 两台 Nginx 机器上都要执行以下操作
安装 nfs-utils(客户端支持)
dnf install -y nfs-utils
测试是否能访问 NFS 共享
showmount -e 192.168.194.130
你应该看到:
Export list for 192.168.194.130:
/var/nfs/nginx-html 192.168.194.128,192.168.194.131
挂载到 Nginx 默认根目录(注意:先备份原内容)
mv /usr/share/nginx/html /usr/share/nginx/html.bak # 备份
mkdir -p /usr/share/nginx/html # 创建新的目录来挂载
挂载 NFS:
mount -t nfs 192.168.194.130:/var/nfs/nginx-html /usr/share/nginx/html
第三步:
验证整个架构
本地测试(在任意 Nginx 节点)
curl localhost
应返回:<h1>Welcome from NFS Shared Storage! </h1>
通过 Keepalived VIP 访问 Web 页面
假设你的 VIP 是 192.168.194.100:
curl 192.168.194.100
# 输出结果
<h1>Welcome from NFS Shared Storage! </h1>
如果这两个命令的输出结果都是一样的话就说明搭建成功了
更多推荐


所有评论(0)