搭建discuz论坛(lvs+nginx+http+mysql+nfs)

一、IP规划

服务名IP地址服务
LVS1192.168.100.110keepalived+ipvsadm
LVS2192.168.100.111keepalived+ipvsadm
nginx1192.168.100.113nginx
nginx2192.168.100.114nginx
nfs192.168.100.116nfs-util
web1192.168.100.118httpd+php+nfs-util
web2192.168.100.119httpd+php+nfs-util
mysql192.168.100.121mysql

虚拟IP

服务名IP地址服务
虚拟ip192.168.100.100nginx+keepalived

二、配置

1.LVS1

​ 关闭防护墙,selinux

# 关闭防火墙
systemctl stop firewalld

# 关闭selinux
setenforce 0

​ 设置ip:192.168.100.110

# 编辑网卡信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33

# 修改
BOOTPROTO=static
ONBOOT=yes

# 写入
IPADDR=192.168.100.110
NETMASK=255.255.255.0
GATEWAY=192.168.100.2

​ 下载keepalived和ipvsadm

yum -y install keepalived ipvsadm

​ 备份默认配置文件

cp -p /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

​ 删除原有文件,创建新内容

# 删除原有文件
rm -rf /etc/keepalived/keepalived.conf 

# 创建新文件
vi /etc/keepalived/keepalived.conf 

​ 添加以下内容

! Configuration File for keepalived

# 配置双机热备(主)
lobal_defs {
   router_id 1
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 1
    priority 120
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.100.100
    }
}

# 虚拟服务器ip及mysql地址
virtual_server 192.168.100.100 80 {
        delay_loop 15
        lb_algo rr
        lb_kind DR
        protocol TCP
        real_server 192.168.100.113 80 {
        weight 1
        TCP_CHECK {
                connect_port 80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 4
                }
        }
        real_server 192.168.100.114 80 {
        weight 1
        TCP_CHECK {
                connect_port 80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 4
                }
        }
}

​ 启动keepalived

systemctl start keepalived

​ 服务模块

# 加载系统内核的服务模块
modprobe ip_vs

# 查看运行状态
lsmod | grep ip_vs

​ 下载net网络工具

yum -y install net-tools

​ 查看网卡信息

# 停用物理网卡
ifconfig ens33 down

# 启动物理网卡(如在连接工具上,需到虚拟机上启动)
ifconfig ens33 up

# 查看网卡信息(在ens33网卡下是否有ip:192.168.100.100)
ip a

# 查看LVS-DR群集策略规则
ipvsadm -ln

​ LVS-DR群集策略

# 查看策略
ipvsadm -ln
2.LVS2

​ 关闭防护墙,selinux

# 关闭防火墙
systemctl stop firewalld

# 关闭selinux
setenforce 0

​ 设置ip:192.168.100.111

# 编辑网卡信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33

# 修改
BOOTPROTO=static
ONBOOT=yes

# 写入
IPADDR=192.168.100.111
NETMASK=255.255.255.0
GATEWAY=192.168.100.2

​ 下载keepalived和ipvsadm

yum -y install keepalived ipvsadm

​ 备份默认配置文件

cp -p /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

​ 删除原有文件,创建新内容

# 删除原有文件
rm -rf /etc/keepalived/keepalived.conf 

# 创建新文件
vi /etc/keepalived/keepalived.conf 

​ 添加以下内容

! Configuration File for keepalived

# 配置双机热备(备)
lobal_defs {
   router_id 2
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 1
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.100.100
    }
}

# 虚拟服务器ip及mysql地址
virtual_server 192.168.100.100 80 {
        delay_loop 15
        lb_algo rr
        lb_kind DR
        protocol TCP
        real_server 192.168.100.113 80 {
        weight 1
        TCP_CHECK {
                connect_port 80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 4
                }
        }
        real_server 192.168.100.114 80 {
        weight 1
        TCP_CHECK {
                connect_port 80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 4
                }
        }
}

​ 启动keepalived

systemctl start keepalived

​ 服务模块

# 加载系统内核的服务模块
modprobe ip_vs

# 查看运行状态
lsmod | grep ip_vs

​ 下载net网络工具

yum -y install net-tools

​ 查看网卡信息

# 停用物理网卡
ifconfig ens33 down

# 启动物理网卡(如在连接工具上,需到虚拟机上启动)
ifconfig ens33 up

# 查看网卡信息(在ens33网卡下是否有ip:192.168.100.100)
ip a

# 查看LVS-DR群集策略规则
ipvsadm -ln

​ LVS-DR群集策略

# 查看策略
ipvsadm -ln
3.nginx1

​ 关闭防火墙,selinux

# 关闭防火墙
systemctl stop firewalld

# 关闭selinux
setenforce 0

​ 设置ip:192.168.100.113

# 编辑网卡信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33

# 修改
BOOTPROTO=static
ONBOOT=yes

# 写入
IPADDR=192.168.100.113
NETMASK=255.255.255.0
GATEWAY=192.168.100.2

​ 下载nginx,keepalived环境

# 配置nginx下载源
cat >> /etc/yum.repos.d/nginx.repo << EOF
[nginx-stable]
name="nginx stable repo"
baseurl=http://nginx.org/packages/centos/$releasever/$basearch
enabled=1
gpgcheck=0
EOF

# 下载环境
yum -y install nginx keepalived

​ 配置nginx

[root@localhost ~]# vi /etc/nginx/nginx.conf
# 在http {}内添加
    upstream apache{
        server 192.168.100.118:80;
        server 192.168.100.119:80;
    }

[root@localhost ~]# vi /etc/nginx/conf.d/default.conf
# 在location / {}内添加
        proxy_pass http://apache;
        proxy_redirect default;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;

# 重启
[root@localhost ~]# systemctl restart nginx

​ 启动nginx

systemctl start nginx

​ 虚拟网卡

# 添加虚拟网卡(回环地址)
cat >> /etc/sysconfig/network-scripts/ifcfg-lo:0  << EOF
DEVICE=lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.255
ONBOOT=yes
EOF

# 重启网络
systemctl restart network

# 查看是否有虚拟ip
ip a

​ 写入路由指向

# 下载网络工具
yum -y install net-tools

# 添加路由信息
route add -host 192.168.100.100 dev lo:0

​ 调整/proc内核参数,关闭ARP响应

cat >> /etc/sysctl.conf << EOF
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
EOF

sysctl -p
4.nginx2

​ 关闭防火墙,selinux

# 关闭防火墙
systemctl stop firewalld

# 关闭selinux
setenforce 0

​ 设置ip:192.168.100.114

# 编辑网卡信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33

# 修改
BOOTPROTO=static
ONBOOT=yes

# 写入
IPADDR=192.168.100.114
NETMASK=255.255.255.0
GATEWAY=192.168.100.2

​ 下载nginx,keepalived环境

# 配置nginx下载源
cat >> /etc/yum.repos.d/nginx.repo << EOF
[nginx-stable]
name="nginx stable repo"
baseurl=http://nginx.org/packages/centos/$releasever/$basearch
enabled=1
gpgcheck=0
EOF

# 下载环境
yum -y install nginx keepalived

​ 配置nginx

[root@localhost ~]# vi /etc/nginx/nginx.conf
# 在http {}内添加
    upstream apache{
        server 192.168.100.118:80;
        server 192.168.100.119:80;
    }

[root@localhost ~]# vi /etc/nginx/conf.d/default.conf
# 在location / {}内添加
        proxy_pass http://apache;
        proxy_redirect default;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;

# 重启
[root@localhost ~]# systemctl restart nginx

​ 启动nginx

systemctl start nginx

​ 写入路由指向

# 下载网络工具
yum -y install net-tools

# 添加路由信息
route add -host 192.168.100.100 dev lo:0

​ 调整/proc内核参数,关闭ARP响应

cat >> /etc/sysctl.conf << EOF
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
EOF

sysctl -p
5.nfs

​ 关闭防火墙,selinux

# 关闭防火墙
systemctl stop firewalld

# 关闭selinux
setenforce 0

​ 设置ip:192.168.100.116

# 编辑网卡信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33

# 修改
BOOTPROTO=static
ONBOOT=yes

# 写入
IPADDR=192.168.100.116
NETMASK=255.255.255.0
GATEWAY=192.168.100.2

​ 创建nfs目录

# 创建共享目录
mkdir /luntan

​ 下载nfs环境

yum -y install nfs-utils*

​ 上传论坛包到/opt

# 下载unzip解压软件
yum -y install unzip

# 解压论坛软件
unzip /opt/Discuz_X3.2_SC_UTF8.zip -d /luntan

# 给予论坛文件权限
chmod -R 757 /luntan/upload/{config,data,uc_*}

cp -rf /luntan/upload/* /luntan/

​ 配置进程

# 启动nfs进程守护
systemctl start rpcbind
systemctl start nfs

​ 共享

# 编辑nfs共享配置文件
vi /etc/exports

# 写入以下内容
/luntan 192.168.100.118(rw,sync,no_root_squash) 192.168.100.119(rw,sync,no_root_squash)

# 刷新nfs文件权限
exportfs -r
6.web1

​ 关闭防火墙,selinux

# 关闭防火墙
systemctl stop firewalld

# 关闭selinux
setenforce 0

​ 设置ip:192.168.100.118

# 编辑网卡信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33

# 修改
BOOTPROTO=static
ONBOOT=yes

# 写入
IPADDR=192.168.100.118
NETMASK=255.255.255.0
GATEWAY=192.168.100.2

​ 安装环境

# 安装httpd,php,nfs环境
yum -y install httpd php php-mysql nfs-utils*

​ 挂载并启动

# 将nfs共享目录挂载到apache下
mount 192.168.100.116:/luntan /var/www/html

# 启动服务
systemctl start httpd
7.web2

​ 关闭防火墙,selinux

# 关闭防火墙
systemctl stop firewalld

# 关闭selinux
setenforce 0

​ 设置ip:192.168.100.119

# 编辑网卡信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33

# 修改
BOOTPROTO=static
ONBOOT=yes

# 写入
IPADDR=192.168.100.119
NETMASK=255.255.255.0
GATEWAY=192.168.100.2

​ 安装环境

# 安装httpd,php,nfs环境
yum -y install httpd php php-mysql nfs-utils*

​ 挂载并启动

# 将nfs共享目录挂载到apache下
mount 192.168.100.116:/luntan /var/www/html

# 启动服务
systemctl start httpd
8.mysql

​ 关闭防护墙,selinux

# 关闭防火墙
systemctl stop firewalld

# 关闭selinux
setenforce 0

​ 设置ip:192.168.100.121

# 编辑网卡信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33

# 修改
BOOTPROTO=static
ONBOOT=yes

# 写入
IPADDR=192.168.100.121
NETMASK=255.255.255.0
GATEWAY=192.168.100.2

​ 下载mariadb

yum -y install mariadb mariadb-server

​ 修改完成重启服务

# 重启服务
systemctl restart mariadb

# 配置mysql密码,123456
mysql_secure_installation 

​ 授权

# 进入mysql
mysql -uroot -p123456

# 授权
grant all privileges on *.* to 'root'@'%' identified by '123456';

# 刷新权限
flush privileges;

三、安装

​ 进入浏览器,输入http://192.168.100.100/upload,开始安装

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部