POWERDNS + LVS + LAMP + NFS + MYSQL主从读写分离
文章目錄
- client 的配置
- 路由器的配置
- powerdns 的搭建
- firewall 的配置
- LVS-DR 模式的配置
- lvs服務器的配置
- web服務器的配置
- 配置 mysql主從讀寫分離
- MySQL 主從配置
- proxysql 實現 mysql 主從分離
- NFS 的配置
- 部署 discuz
- 測試
client 的配置
[client]#
nmcli connection modify ens33 ipv4.addresses 192.168.1.8/24 ipv4.dns 192.168.2.200 ipv4.gateway 192.168.1.9 nmcli connection reload nmcli connection up ens33路由器的配置
[route]#
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j SNAT --to-source 192.168.2.254powerdns 的搭建
安裝包
[powerDNS]#
yum -y --enablerepo=aliyun --enablerepo=aliyun_epel install httpd php php-devel php-gd php-mcrypt php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext php-mysql pdns pdns-backend-mysql mariadb-server配置文件
[powerDNS]#
vim /etc/pdns/pdns.conf launch=gmysql gmysql-host=localhost gmysql-port=3306 gmysql-dbname=powerdns gmysql-user=powerdns gmysql-password=centos創建powerdns數據庫中的表
[powerDNS]#
mysql -e "create database powerdns;grant all on powerdns.* to powerdns@localhost identified by 'centos';" mysql use powerdns; CREATE TABLE domains (id INT AUTO_INCREMENT,name VARCHAR(255) NOT NULL,master VARCHAR(128) DEFAULT NULL,last_check INT DEFAULT NULL,type VARCHAR(6) NOT NULL,notified_serial INT DEFAULT NULL,account VARCHAR(40) DEFAULT NULL,PRIMARY KEY (id) ) Engine=InnoDB;CREATE UNIQUE INDEX name_index ON domains(name);CREATE TABLE records (id BIGINT AUTO_INCREMENT,domain_id INT DEFAULT NULL,name VARCHAR(255) DEFAULT NULL,type VARCHAR(10) DEFAULT NULL,content VARCHAR(64000) DEFAULT NULL,ttl INT DEFAULT NULL,prio INT DEFAULT NULL,change_date INT DEFAULT NULL,disabled TINYINT(1) DEFAULT 0,ordername VARCHAR(255) BINARY DEFAULT NULL,auth TINYINT(1) DEFAULT 1,PRIMARY KEY (id) ) Engine=InnoDB;CREATE INDEX nametype_index ON records(name,type); CREATE INDEX domain_id ON records(domain_id); CREATE INDEX recordorder ON records (domain_id, ordername);CREATE TABLE supermasters (ip VARCHAR(64) NOT NULL,nameserver VARCHAR(255) NOT NULL,account VARCHAR(40) NOT NULL,PRIMARY KEY (ip, nameserver) ) Engine=InnoDB;CREATE TABLE comments (id INT AUTO_INCREMENT,domain_id INT NOT NULL,name VARCHAR(255) NOT NULL,type VARCHAR(10) NOT NULL,modified_at INT NOT NULL,account VARCHAR(40) NOT NULL,comment VARCHAR(64000) NOT NULL,PRIMARY KEY (id) ) Engine=InnoDB;CREATE INDEX comments_domain_id_idx ON comments (domain_id); CREATE INDEX comments_name_type_idx ON comments (name, type); CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);CREATE TABLE domainmetadata (id INT AUTO_INCREMENT,domain_id INT NOT NULL,kind VARCHAR(32),content TEXT,PRIMARY KEY (id) ) Engine=InnoDB;CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);CREATE TABLE cryptokeys (id INT AUTO_INCREMENT,domain_id INT NOT NULL,flags INT NOT NULL,active BOOL,content TEXT,PRIMARY KEY(id) ) Engine=InnoDB;CREATE INDEX domainidindex ON cryptokeys(domain_id);CREATE TABLE tsigkeys (id INT AUTO_INCREMENT,name VARCHAR(255),algorithm VARCHAR(50),secret VARCHAR(255),PRIMARY KEY (id) ) Engine=InnoDB;CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);啟動服務
[powerDNS]#
systemctl enable --now pdns httpd mariadb下載poweradmin-2.1.7.tgz程序,并解壓縮到相應目錄
cd /var/www/html tar xvf poweradmin-2.1.7.tgz mv poweradmin-2.1.7 poweradmin安裝 poweradmin web管理界面
再次使用瀏覽器:192.168.2.200/poweradmin 進行創建
測試dns是配置成功
firewall 的配置
iptables -t nat -A PREROUTING -d 192.168.2.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.43.100 iptables-save > /data/iptables.rules echo "iptables-restore < /data/iptables.rules" >> /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.localecho "net.ipv4.ip_forward =1 " >> /etc/sysctl.conf sysctl -pLVS-DR 模式的配置
lvs服務器的配置
安裝 ipvsadm
nmcli connection modify ens33 ipv4.gateway 192.168.43.26 ipv4.address 192.168.43.7/24 nmcli connection reload nmcli connection up ens33 yum install ipvsadm -y配置文件
ipvsadm -A -t 192.168.43.100:80 -s rr ipvsadm -a -t 192.168.43.100:80 -r 192.168.43.17 -g ipvsadm -a -t 192.168.43.100:80 -r 192.168.43.27 -g ipvsadm-save > /etc/sysconfig/ipvsadm systemctl enable --now ipvsadm.service配置vip
ip addr add 192.168.43.100/32 dev lo label lo:1 echo "ip addr add 192.168.43.100/32 dev lo label lo:1" >> /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.localweb服務器的配置
安裝包
yum install php httpd php-mysql nfs-utils -y配置文件
vim /etc/httpd/conf.d/discuz.xuepeng.com.conf <virtualhost *:80>documentroot "/data/discuz"servername discuz.xuepeng.com<directory "/data/discuz">require all granted<\directory> </virtualhost>啟動服務
mkdir /data/discuz httpd -t systemctl enable --now httpdvip的配置
ip addr add 192.168.43.100/32 dev lo label lo:1設置arp
vim /etc/sysctl.confnet.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_announce = 2 sysctl -p配置 mysql主從讀寫分離
MySQL 主從配置
mysql master配置
配置文件,啟動
yum install mariadb-server -y vim /etc/my.cnfserver_id=6log_binsystemctl enable --now mariadb配置用于同步的帳號
mysql -e "grant replication slave on *.* to replication@'192.168.43.%' identified by 'replication';flush privileges;"查看 二進進制日志的文件信息
mysql slave的配置
yum install mariadb-server -y vim /etc/my.cnfserver_id=16read_onlysystemctl enable --now mariadb mysql MariaDB [(none)]> CHANGE MASTER TO-> MASTER_HOST='192.168.43.6',-> MASTER_USER='replication',-> MASTER_PASSWORD='replication',-> MASTER_PORT=3306,-> MASTER_LOG_FILE='mariadb-bin.000001',-> MASTER_LOG_POS=818; MariaDB [(none)]> start slave;proxysql 實現 mysql 主從分離
準備包
[proxysql]#
安裝包
[proxysql]#
啟動服務,進入管理接口,向ProxySQL中添加MySQL節點
[proxysql]#
添加監控后端節點的用戶
[mysql_master]#
ProxySQL上配置監控用戶
[proxysql]#
監控模塊的指標保存在monitor庫的log表中
查看監控連接是否正常的 (對connect指標的監控):(如果connect_error的結果為NULL則表示正常)
測試后端服務器是否正常
分組信息
[proxysql]#
查看分組信息
[proxysql]#
配置發送SQL語句的用戶
[mysql_master]#
[proxysql]#
insert into mysql_users(username,password,default_hostgroup)values('sqluser','sqluser',10); load mysql users to runtime; save mysql users to disk;創建路由規則
[proxysql]#
查看路由規則
授權一個數據庫用戶用于網站數據寫入數據庫時用
[mysql_master]#
[proxysql]#
insert into mysql_users(username,password,default_hostgroup) values('discuz','discuz',10); load mysql users to runtime; save mysql users to disk;NFS 的配置
yum install nfs-utils -y mkdir /data/discuz groupadd -g 48 apache useradd -u 48 -g 48 -s /sbin/nologin apachevim /etc/exports /data/discuz 192.168.43.27(rw,all_squash,anonuid=48,anongid=48) /data/discuz 192.168.43.17(rw,all_squash,anonuid=48,anongid=48)systemctl enable --now nfs exportfs -arvweb服務器查看共享,掛載
showmount -e 192.168.43.37 Export list for 192.168.43.37:/data/discuz 192.168.43.17,192.168.43.27 echo "192.168.43.37:/data/discuz /data/discuz nfs defaults 0 0" >> /etc/fstab mount -a部署 discuz
[NFS]#
cd /usr/local/src rz // Discuz_X3.2_SC_UTF8.zip unzip Discuz_X3.2_SC_UTF8.zip ls cp -r upload/* /data/discuz/ chown -R apache.apache /data/discuz/需要一個數據庫用戶用于網站數據寫入數據庫時用
在任意一臺apache服務器上部署都可以,因為數據是寫入數據庫的
[apache]#
測試
[client]#
總結
以上是生活随笔為你收集整理的POWERDNS + LVS + LAMP + NFS + MYSQL主从读写分离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语音识别(ASR)论文优选:WeNet之
- 下一篇: linux cmake编译源码,linu