宝塔山 发表于 2025-4-2 04:24:25

Keepalive+LVS+Nginx+NFS高可用 架构

https://i-blog.csdnimg.cn/direct/222bae2bfd0d46f7bcf2c18b80171e50.png
主机规划
https://i-blog.csdnimg.cn/direct/5c6e43da31b64db29d62e332f186a5a2.png
1.配置nfs服务

1.1修改主机名ip地址
hostnamectl hostname nfs
nmcli c modify ens160 ipv4.method manual ipv4.addresess 192.168.72.120/24 ipv4.dns 223.5.5.5 ipv4.gateway 192.168.72.2 connection.autoconnect yes
1.2配置仓库
vim /etc/yum.repos.d/dnf.repo

name=BaseOS
baseurl=/mnt/BaseOS
gpgcheck=0

name=AppSteam
baseurl=/mnt/AppStream
gpgcheck=/mnt/AppStream
1.3挂载仓库并下载nfs服务
mount /dev/sr0 /mnt


设置开机自动挂载
vim /etc/fstab
/dev/sr0 /mnt iso9660 defaults 0 0
mount -a
下载nfs服务
dnf install nfs-utils -y
1.4关闭防火墙和selinux,配置服务
systemctl enabled --nowfirewalld
setenforce 0
mkdir /nfs/data -p
vim /etc/exports
/nfs/data 192.168.72.119(rw)
/nfs/data 192.168.72.118(rw)
启动nfs服务
systemctl start nfs-server
测试
showmount -e 192.168.72.120
2.搭建rs服务器

2.1修改ip地址和主机名
hostnamectl hostname rs1
nmcli c modify ens160 ipv4.method manual ipv4.addresess 192.168.72.118/24 ipv4.dns 223.5.5.5 ipv4.gateway 192.168.72.2 connection.autoconnect yes
hostnamectl hostname rs2
nmcli c modify ens160 ipv4.method manual ipv4.addresess 192.168.72.119/24 ipv4.dns 223.5.5.5 ipv4.gateway 192.168.72.2 connection.autoconnect yes
2.2配置仓库
vim /etc/yum.repos.d/dnf.repo

name=BaseOS
baseurl=/mnt/BaseOS
gpgcheck=0

name=AppSteam
baseurl=/mnt/AppStream
gpgcheck=/mnt/AppStream
2.3挂载仓库并下载nfs,nginx服务
mount /dev/sr0 /mnt


设置开机自动挂载
vim /etc/fstab
/dev/sr0 /mnt iso9660 defaults 0 0
mount -a
下载nfs,nginx服务
dnf install nfs-utils nginx -y
2.4关闭防火墙和selinux,配置服务
systemctl enabled --nowfirewalld
setenforce 0
rs1:
mkdir /data/nfs -p
mount -t nfs 192.168.72.120:/nfs/data /data/nfs
rs2:
mkdir /data/nfs -p
mount -t nfs 192.168.72.120:/nfs/data /data/nfs
编写nginx相干文件:
rs1:
vim /etc/nginx/conf.d/rs1.conf
server{
        server_name192.168.72.118;
        root /data/nfs;
        access_log /var/log/nginx/accessrs1_log;
        error_log /var/log/nginx/errorrs1_log;
}
rs2:
vim /etc/nginx/conf.d/rs2.conf
server{
        server_name192.168.72.119;
        root /data/nfs;
        access_log /var/log/nginx/accessrs2_log;
        error_log /var/log/nginx/errorrs2_log;
}
启动nfs,nginx服务
systemctl start nfs-server
nginx 测试
curl 192.168.72.120
3.配置keepalived,lvs服务

3.1修改ip地址和主机名
hostnamectl hostname lvs-backup
nmcli c modify ens160 ipv4.method manual ipv4.addresess 192.168.72.117/24 ipv4.dns 223.5.5.5 ipv4.gateway 192.168.72.2 connection.autoconnect yes
hostnamectl hostname lvs-master
nmcli c modify ens160 ipv4.method manual ipv4.addresess 192.168.72.116/24 ipv4.dns 223.5.5.5 ipv4.gateway 192.168.72.2 connection.autoconnect yes
3.2配置仓库
vim /etc/yum.repos.d/dnf.repo

name=BaseOS
baseurl=/mnt/BaseOS
gpgcheck=0

name=AppSteam
baseurl=/mnt/AppStream
gpgcheck=/mnt/AppStream
2.3挂载仓库并下载keepalived,lvs服务
mount /dev/sr0 /mnt


设置开机自动挂载
vim /etc/fstab
/dev/sr0 /mnt iso9660 defaults 0 0
mount -a
下载keepalived,lvs服务
dnf install keepalived ipvsadm -y
3.4关闭防火墙和selinux,配置服务
systemctl enabled --nowfirewalld
setenforce 0
lvs-master:
vim /etc/keepalived/keeplived.conf
global_defs {
   router_id lvs-master
}
vrrp_instance VI_1 {
    state MASTER
    interface ens160
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
      auth_type PASS
      auth_pass 1111
    }
    virtual_ipaddress {
      192.168.72.100
    }
}

virtual_server 192.168.72.100 80 {
    delay_loop 3               
    lb_algo wrr                       
    lb_kind DR                       
    persistence_timeout 50       
    protocol TCP                       
    real_server 192.168.72.118 80 {
      weight 3       
      TCP_CHECK {
            connect_timeout 3               
            retry 3                                       
            delay_before_retry 3
      }
    }
    real_server 192.168.72.119 80 {
      weight 1
      TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
      }
    }
}
ipvsadm-save -n /etc/sysconfig/ipvsadm
backup:
vim /etc/keepalived/keeplived.conf
global_defs {
   router_id lvs-backup
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens160
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
      auth_type PASS
      auth_pass 1111
    }
    virtual_ipaddress {
      192.168.72.100
    }
}

virtual_server 192.168.72.100 80 {
    delay_loop 3               
    lb_algo wrr                       
    lb_kind DR                       
    persistence_timeout 50       
    protocol TCP                       
    real_server 192.168.72.118 80 {
      weight 3       
      TCP_CHECK {
            connect_timeout 3               
            retry 3                                       
            delay_before_retry 3
      }
    }
    real_server 192.168.72.119 80 {
      weight 1
      TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
      }
    }
}
ipvsdam-save -n /etc/sysconfig/ipvsadm
启动两台服务器
systemctl start keepalived ipvsadm
检察配置规则:
ipvsadm -Ln
在rs1,rs2上配置参数
ifconfig lo:1 192.168.72.100 netmask 255.255.255.255 broadcast 192.168.72.100 up
ip a show lo
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.ip_forward=0
sysctl -p
增加路由
route add -host 192.168.72.100 dev lo:1
route -n
在浏览器举行测试
http://192.168.72.100

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Keepalive+LVS+Nginx+NFS高可用 架构