水军大提督 发表于 2024-8-30 09:25:56

搭建discuz论坛(lvs+nginx+http+mysql+nfs)8台服务器

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

一、IP规划

服务名IP地点服务LVS1192.168.100.110keepalived+ipvsadmLVS2192.168.100.111keepalived+ipvsadmnginx1192.168.100.113nginxnginx2192.168.100.114nginxnfs192.168.100.116nfs-utilweb1192.168.100.118httpd+php+nfs-utilweb2192.168.100.119httpd+php+nfs-utilmysql192.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

name="nginx stable repo"
baseurl=http://nginx.org/packages/centos/$releasever/$basearch
enabled=1
gpgcheck=0
EOF

# 下载环境
yum -y install nginx keepalived
​ 配置nginx
# vi /etc/nginx/nginx.conf
# 在http {}内添加
    upstream apache{
      server 192.168.100.118:80;
      server 192.168.100.119:80;
    }

# 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;

# 重启
# 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

name="nginx stable repo"
baseurl=http://nginx.org/packages/centos/$releasever/$basearch
enabled=1
gpgcheck=0
EOF

# 下载环境
yum -y install nginx keepalived
​ 配置nginx
# vi /etc/nginx/nginx.conf
# 在http {}内添加
    upstream apache{
      server 192.168.100.118:80;
      server 192.168.100.119:80;
    }

# 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;

# 重启
# 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,开始安装

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 搭建discuz论坛(lvs+nginx+http+mysql+nfs)8台服务器