[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.254
安装包
[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
再次使用浏览器:192.168.2.200/poweradmin 进行创建
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.local
echo "net.ipv4.ip_forward =1 " >> /etc/sysctl.conf
sysctl -p
安装 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.local
安装包
yum install php httpd php-mysql nfs-utils -y
配置文件
vim /etc/httpd/conf.d/discuz.xuepeng.com.conf
documentroot "/data/discuz"
servername discuz.xuepeng.com
require all granted
<\directory>
启动服务
mkdir /data/discuz
httpd -t
systemctl enable --now httpd
vip的配置
ip addr add 192.168.43.100/32 dev lo label lo:1
设置arp
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
sysctl -p
mysql master配置
配置文件,启动
yum install mariadb-server -y
vim /etc/my.cnf
server_id=6
log_bin
systemctl 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.cnf
server_id=16
read_only
systemctl 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]#
安装包
[proxysql]#
yum install *.rpm -y
启动服务,进入管理接口,向ProxySQL中添加MySQL节点
[proxysql]#
service proxysql start
chkconfig proxysql on
mysql -uadmin -padmin -P6032 -h127.0.0.1
insert into mysql_servers(hostgroup_id,hostname,port) values(20,'192.168.43.16',3306);
insert into mysql_servers(hostgroup_id,hostname,port) values(10,'192.168.43.6',3306);
load mysql servers to runtime;
save mysql servers to disk;
添加监控后端节点的用户
[mysql_master]#
grant replication client on *.* to monitor@'192.168.43.%' identified by 'monitor';
ProxySQL上配置监控用户
[proxysql]#
set mysql-monitor_username='monitor';
set mysql-monitor_password='monitor';
load mysql variables to runtime;
save mysql variables to disk;
监控模块的指标保存在monitor库的log表中
查看监控连接是否正常的 (对connect指标的监控):(如果connect_error的结果为NULL则表示正常)
测试后端服务器是否正常
分组信息
[proxysql]#
insert into mysql_replication_hostgroups values(10,20,"test");
load mysql servers to runtime;
save mysql servers to disk;
查看分组信息
[proxysql]#
select hostgroup_id,hostname,port,status,weight from mysql_servers;
grant all on *.* to sqluser@'192.168.43.%' identified by 'sqluser';
[proxysql]#
insert into mysql_users(username,password,default_hostgroup)values('sqluser','sqluser',10);
load mysql users to runtime;
save mysql users to disk;
创建路由规则
[proxysql]#
insert into mysql_query_rules (rule_id,active,match_digest,destination_hostgroup,apply)values(1,1,'^SELECT.*FOR UPDATE$',10,1),(2,1,'^SELECT',20,1);
load mysql query rules to runtime;
save mysql query rules to disk;
查看路由规则
授权一个数据库用户用于网站数据写入数据库时用
[mysql_master]#
MariaDB [(none)]> create database discuz;
MariaDB [(none)]> grant all on discuz.* to discuz@'192.168.43.%' identified by "discuz";
MariaDB [(none)]> flush privileges;
[proxysql]#
insert into mysql_users(username,password,default_hostgroup) values('discuz','discuz',10);
load mysql users to runtime;
save mysql users to disk;
yum install nfs-utils -y
mkdir /data/discuz
groupadd -g 48 apache
useradd -u 48 -g 48 -s /sbin/nologin apache
vim /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 -arv
web服务器查看共享,挂载
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
[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]#