本文最后更新于:2022年1月4日 晚上
haproxy负载均衡集群安装与配置
一、虚拟机模板环境准备 1、关闭防火墙、selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 getenforce sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/ selinux/config
2、 删除iptables防火墙规则 1 2 3 4 iptables -F iptables -X iptables -Z/usr/ sbin/iptables-save
3、移除本地yum源 1 mv /etc/yum .repos.d/* /m edia/
4、准备镜像做本地源 将CentOS-7-x86_64-DVD-1804.iso
上传到/home
目录下
1 2 3 4 mkdir /opt/ centos mount -o loop /home/ CentOS-7 -x86_64-DVD-1804 .iso /mnt/ cp -rvf /mnt/ * /opt/ centos/ umount /mnt/
5、配置本地yum源 1 vim /etc/yum .repos.d/local.repo
1 2 3 4 5 [centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enabled=1
6、清理yum缓存
二、搭建Web1 1、重命名服务器名字 1 2 hostnamectl set-hostname Wss34-Web1 su
2、安装数据库 1 2 3 yum install -y mariadb-server systemctl restart mariadb systemctl enable mariadb
3、配置数据库
1 mysqladmin -uroot password 数据库密码
或者
1 2 3 4 5 mysql MariaDB [(none)]> use mysql; MariaDB [mysql]> UPDATE user SET password=password('数据库密码' ) WHERE user='root' ; MariaDB [mysql]> flush privileges; MariaDB [mysql]> exit ;
4、安装Web服务器 1 2 3 yum install -y php php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc systemctl restart httpd systemctl enable httpd
具体请参考:PHP连接数据库 - ERHE·Blog
5、部署Discuz-X3.4 将Discuz_X3.4_SC_UTF8【20200818】.zip
上传到网站根目录(/var/www/html
)并解压
Discuz_X3.4_SC_UTF8【20200818】.zip 点击下载
1 2 3 4 yum install -y unzip cd /var/ www/html unzip Discuz_X3.4 _SC_UTF8【20200818 】.zip chmod 777 -R /var/ www/html/ *
浏览器打开这个网页
6、部署完成
7、写入页面 1 2 cd /var/www/htmlvim index .html
1 2 3 4 5 6 7 8 9 10 11 12 13 <!DOCTYPE html > <html lang ="ZH" > <head > <meta charset ="UTF-8" > <meta http-equiv ="X-UA-Compatible" content ="IE=edge" > <meta name ="viewport" content ="width=device-width, initial-scale=1.0" > <title > Web1</title > </head > <body > <h1 > This is Web1</h1 > <a href ="./upload" > 点击这里进入博客</a > </body > </html >
最后wq
保存就好了
二、搭建Web2 拷贝Web1就行了
⭕注意:一定要先把虚拟机关机后把VMWera关闭后再进行复制
PS:记得改一下名字和Web页面
1 2 3 hostnamectl set-hostname wss34-web2 cd /var /www /html vim index .html
把里面的1改成2
三、部署haproxy1 1、重命名服务器名字 1 2 hostnamectl set-hostname Wss34-haproxy su
2、安装haproxy
3、配置haproxy 1 vim /etc/ haproxy/haproxy.cfg
翻到最下面改这这些
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 frontend main *:80 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js use_backend app if url_static default_backend app backend static balance roundrobin server static 127.0.0.1:4331 check backend app balance roundrobin server app1 10.129.1.233:80 check server app2 10.129.0.23:80 check listen stats mode http bind 0.0.0.0:8888 stats enable stats uri /wss34 stats auth admin:admin123
4、重启haproxy 1 2 system ctl restart haproxysystem ctl enable haproxy
5、访问并测试
6、再次访问并测试
7、进入监控界面 1 http:// 10.129 .1.132 :8888 /wss34
至此搭建完成!
四、搭建haproxy2 拷贝haproxy1一份就行了
⭕注意:一定要先把虚拟机关机后把VMWera关闭后再进行复制
五、部署keepalived高可用 1、重命名服务器名字 1 2 hostnamectl set-hostname Wss34-haproxy2 su
2、安装keepalived
haproxy和haproxy2两台服务器都要安装
1 yum install -y keepalived
3、查看网卡
4、更改配置文件 1 vim /etc/ keepalived/keepalived.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ! Configuration File for keepalived global_defs { notification_email { acassen@ firewall.loc failover@ firewall.loc sysadmin@ firewall.loc } notification_email_from Alexandre.Cassen@ firewall.loc smtp_server 192.168 .200 .1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr # vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER interface ens36 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.0 .34 .100 } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ! Configuration File for keepalived global_defs { notification_email { acassen@ firewall.loc failover@ firewall.loc sysadmin@ firewall.loc } notification_email_from Alexandre.Cassen@ firewall.loc smtp_server 192.168 .200 .1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr # vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state BACKUP interface ens36 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.0 .34 .100 } }
5、运行keepalived
6、查看运行状态 1 systemctl status keepalived
7、进行测试 断开了主节点
再进行访问测试
六、部署主从数据库 1、准备两台虚拟机 拷贝模板虚拟机就行了,拷贝两次
⭕注意:一定要先把虚拟机关机后把VMWera关闭后再进行复制
PS:记得改一下服务器名字
1 2 hostnamectl set-hostname wss34-sql1 su
1 2 hostnamectl set-hostname wss34-sql2 su
2、安装数据库 ⭕这步操作两台都要配置
1 2 3 yum install -y mariadb-server systemctl restart mariadb systemctl enable mariadb
3、配置数据库 ⭕这步操作两台都要配置
1 mysqladmin -uroot password 数据库密码
或者
1 2 3 4 5 mysql MariaDB [(none)]> use mysql; MariaDB [mysql]> UPDATE user SET password=password('数据库密码' ) WHERE user='root' ; MariaDB [mysql]> flush privileges; MariaDB [mysql]> exit ;
1 2 3 4 mysql -u root -p MariaDB [mysql]> grant all privileges on *.* to 'root' @'%' identified by '数据库密码' ; MariaDB [mysql]> flush privileges ; systemctl restart mariadb
4、主服务器配置 1 vim /etc/my.cnf .d/server.cnf
在[mysqld]下面加入这些配置
1 2 3 server-id =1 log_bin =mysql-binbinlog-ignore-db =mysql
重启数据库并查看配置
1 2 3 systemctl restart mariadb mysql -u root -p show master status ;
5、从服务器配置 1 vim /etc/my.cnf .d/server.cnf
在[mysqld]下面加入这些配置
重启数据库并配置
1 2 3 4 5 6 systemctl enable --now mariadb mysql -u root -p MariaDB [(none )]> change master to master_host='主数据库IP地址' ,master_user='root' ,master_password='主数据库密码' ,master_log_file='mysql-bin.000002' ,master_log_pos=245 ;MariaDB [(none )]> start slave;
查看从服务器运行状态
1 MariaDB [(none )]> show slave status \G;
6、进行测试
1 2 create database wangss34;show databases;
七、部署Web到主从数据库集群 1、部署Web服务器 ⭕使用原来的Web1服务器进行删除网站根目录重新配置部署Discuz-X3.4
将Discuz_X3.4_SC_UTF8【20200818】.zip
上传到网站根目录(/var/www/html
)并解压
Discuz_X3.4_SC_UTF8【20200818】.zip 点击下载
1 2 3 cd /var/ www/html unzip Discuz_X3.4 _SC_UTF8【20200818 】.zip chmod 777 -R /var/ www/html/ *
浏览器打开这个网页
3、验证主从数据库
📣特别声明 此文章全部都是依靠自己的学习理解来写的原创文章,难免可能会出现有错误的地方,
如果大家以后阅读的时候发现有问题,那就麻烦到下方评论区来进行错误指出,使错误尽快做出改正,
在此,感谢大家的阅读与支持!🤝💦🎉
🍻支持一下 觉得我写的好的话可以支持一下我哦~持续关注我,会更新其他好玩且实用的项目。
👋如果我能帮助到你,那就请我喝杯🧋呗~👇👇👇