搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

释放双眼,带上耳机,听听看~!

实验环境:(共7台机器)

      PowerDNS: 192.168.99.110
         两台LAP: 192.168.99.120 和 192.168.99.130
      NFS服务器:192.168.99.140
      MySQL:主节点:192.168.99.150
         从节点B:192.168.99.160 和192.168.99.170

拓扑图:

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

实验步骤:

一、先搭建MySQL主从半节点99.150、160和170

在主节点上150操作

1、先修改配置文件内容添加server-id和bin-log

[root@centos7 ~]#vim /etc/my.cnf [mysqld] server-id=150 log-bin
[root@centos7 ~]#systemctl start mariadb

 2、查看主节点的pos位置点并创建从节点复制同步时使用的用户账号

MariaDB [(none)]> show master status; MariaDB [(none)]> grant replication slave on *.* to repluser@\'%\' identified by \'123\';

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

 两个从节点:160,170同样的操作

1、在配置文件中添加各自的server-id号,然后向主节点使用刚刚创建的复制账号进行同步操作

[root@centos7 ~ ]#vim /etc/my.cnf [mysqld] server-id=160 #启动MySQL数据库

  2、使用复制账号向主节点同步,然后查看同步的状态

MariaDB [(none)]> change master to master_host=\'192.168.99.150\', master_user=\'repluser\', master_password=\'123\', master_port=3306, master_log_file=\'mariadb-bin.000001\', master_log_pos=245; MariaDB [(none)]> slave start; MariaDB [(none)]> show slave status\\G

 看到两个线程状态为Yes就表示此时已经同步成功了

 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

170机器同样的操作

3、下面配置实现半同步操作:安装插件

主节点150:

①安装主节点使用master端的插件

MariaDB [(none)]> INSTALL PLUGIN rpl_semi_sync_master SONAME \'semisync_master.so\'; MariaDB [(none)]> show plugins; ... | rpl_semi_sync_master    | ACTIVE   | REPLICATION    | semisync_master.so | GPL     |
+--------------------------------+----------+--------------------+--------------------
#查看节点的启用状态 MariaDB [(none)]> show global variables like \'%semi%\'; +------------------------------------+-------+
| Variable_name                      | Value |
+------------------------------------+-------+
| rpl_semi_sync_master_enabled       | OFF   |
| rpl_semi_sync_master_timeout       | 10000 | #其中:timeout这个参数是指同步超时时间 | rpl_semi_sync_master_trace_level   | 32    |
| rpl_semi_sync_master_wait_no_slave | ON    |
+------------------------------------+-------+

 ② 启用master端的插件

MariaDB [(none)]> set global rpl_semi_sync_master_enabled=on; #查看一下是否启用 MariaDB [(none)]> show global variables like \'%semi%\'; +------------------------------------+-------+
| Variable_name                      | Value |
+------------------------------------+-------+
| rpl_semi_sync_master_enabled       | ON    |

 ③ 两个从节点160和170同样的操作:

安装slave端的插件:

④ 安装slave端使用的半同步插件,然后启动插件并查看确认

MariaDB [(none)]> INSTALL PLUGIN rpl_semi_sync_slave SONAME \'semisync_slave.so\'; #查看下插件的状态,此时并没有启动,enabled为OFF MariaDB [(none)]> show global variables like \'%semi%\'; +---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| rpl_semi_sync_slave_enabled     | OFF   |
| rpl_semi_sync_slave_trace_level | 32    |
+---------------------------------+-------+
#启用插件 MariaDB [(none)]> set global rpl_semi_sync_slave_enabled=on; #再次查看状态 MariaDB [(none)]> show global variables like \'%semi%\'; +---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| rpl_semi_sync_slave_enabled     | ON    |    #状态为 ON 已启用 | rpl_semi_sync_slave_trace_level | 32    |
+---------------------------------+-------+
#插件启用完了还需要重新启动slave的线程 MariaDB [(none)]> stop slave; MariaDB [(none)]> start slave; 

 

⑤ 回到主节点机器99.150上查看插件的状态,此时应该是有两个客户端了

MariaDB [(none)]> SHOW GLOBAL STATUS LIKE \'%semi%\'; +--------------------------------------------+--------+
| Variable_name                              | Value  |
+--------------------------------------------+--------+
| Rpl_semi_sync_master_clients               | 2      |   #客户端数量为 2 .....

 4、在主节点150主节点中先创建一个wordpress网站用的账号,等会需要使用

MariaDB [(none)]> create database wpdb; MariaDB [(none)]> grant all privileges on wpdb.* to wpuser@\'192.168.99.%\' identified by \"xu\";

 

二、部署搭建PowerDNS

1、在99.110机器上操作

#安装软件包
   yum install -y pdns pdns-backend-mysql    (epel源里的包)
[root@centos7 ~]#yum -y install httpd php php-mysql php-mbstring
[root@centos7 ~]#systemctl start httpd

 2、需要在数据库中创建相应的库和表

#进入数据库中创建相应的库和表
MariaDB [(none)]> CREATE DATABASE powerdns;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL ON powerdns.* TO \'powerdns\'@\'192.168.99.110\' IDENTIFIED BY \'123\';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| powerdns           |
| test               |
+--------------------+
5 rows in set (0.00 sec)
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);

 

3、回到99.110机器上操作

   在powerdns的配置文件中添加PowerDNS使用mariadb作为后台数据存储

#查找到包含launch= 的行,修改并添加下面的内容 vim /etc/pdns/pdns.conf # 250行 launch=gmysql gmysql-host=192.168.99.150 #MySQL数据库的IP gmysql-port=3306 #端口 gmysql-dbname=powerdns #数据库名 gmysql-user=powerdns #用户 gmysql-password=123 #密码 # 启动pdns服务 systemctl start pdns systemctl enable pdns

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

4、安装httpd和php相关包

[root@centos7 ~]# yum -y install php-devel php-gd php-mcrypt php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mcrypt php-mhash gettext 
#重启httpd服务
[root@centos7 ~]# systemctl start httpd

 5、在网站的根目录内下载poweradmin程序,

[root@centos7 ~]# cd /var/www/html [root@centos7 html]# ls [root@centos7 html]# wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz

 6、解压压缩包并重命名

 tar xf poweradmin-2.1.7.tgz mv poweradmin-2.1.7 poweradmin

 7、一会需要安装powerdns可能需要有写的权限,可以使用facl设置权限,方便撤销

 [root@centos7 html]# setfacl -Rm u:apache:rwx poweradmin

 8、使用浏览器访问httpd的powerdns页面进行安装:

    http://192.168.99.110/poweradmin/install/

第一步:选择语言,然后继续

 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

第二步:这是第一次安装,点继续下一步

 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

第三步:提示输入数据库的连接信息

 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

第四步:填写powerdns的用户名和密码,还有域名,主域名服务器和从域名服务器,目前只有一台

 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

第五步:提示需要在数据库中给某个用户授予相应的权限,根据提示在数据库中操作即可

 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

 第六步:按照提示修改powerdns的配置文件即可,先重命名一个新文件

[root@centos7 poweradmin]#cp inc/config-me.inc.php inc/config.inc.php 
[root@centos7 poweradmin]#vim inc/config.inc.php
<?php

$db_host        = \'192.168.99.150\';
$db_user        = \'powerdns\';
$db_pass        = \'123\';
$db_name        = \'powerdns\';
$db_type        = \'mysql\';
$db_layer       = \'PDO\';

$session_key        = \'}6!}-]pDYxRpWzPMrI18bUKQ*b@Dza}5mD4)&n1MlMB+F6\';

$iface_lang     = \'en_EN\';

$dns_hostmaster     = \'master.peter.com\';
$dns_ns1        = \'192.168.99.110\';
$dns_ns2        = \'192.168.99.110\';

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

第七步:安装完成,并要求从Poweradmin根目录中删除install 否则无法登陆

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

 如果不删除就不让登陆,我们删除目录后重新登录

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

[root@centos7 poweradmin]#pwd
/var/www/html/poweradmin [root@centos7 poweradmin]#\\rm -rf install/

 删除后再次进行登录,然后输入用户名密码登录

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

 1、添加一个主域

 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

2、添加主域的信息,然后添加即可

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

3、点击域列表可以查看刚刚添加的主域信息,我们点编辑,添加一会要部署的wordpress博客站点的

 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

3、添加一个A记录内容字段填写web1的IP地址然后添加即可,同样操作再添加一条记录指向另一台web服务器99.130

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

4、添加完之后可以点查询,输入域名看是否可以查看刚刚添加的两条记录

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

查看结果

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

三、配置NFS服务器

下面开始配置NFS,在主机99.140上操作

1、安装nfs软件

 yum install -y nfs-utils

2、添加配置文件

 [root@centos7 ~]#vim /etc/exports /data/wordpress 192.168.99.0/24(rw,all_squash,anonuid=997,anongid=995) #启动nfs服务 [root@centos7 ~]systemctl start nfs-server

3、创建网站使用的用户

 groupadd -g 995 apache useradd -r -u 997 -g 995 -s /sbin/nologin apache

4、部署wordpress网站,解压压缩包到本地的/data/目录并设置权限

 tar xf wordpress-5.0.3-zh_CN.tar.gz -C /data/   
 rm -f wordpress-5.0.3-zh_CN.tar.gz chown -R apache.apache /data/wordpress/

四、部署两台LAP并在本地NFS挂载

下面开始在120、130两台机子上部署LAP,先在120机器上安装apache和PHP,这里 使用yum安装,源码编译同样操作

1、安装包

[root@centos7 ~]# yum -y install php httpd php-mysql php-mbstring

2、修改httpd的配置文件

[root@centos7 ~]# vim /etc/httpd/conf.d/vhost.conf <virtualhost *:80> documentroot /data/wordpress servername www.peter.com <directory /data/wordpress> require all granted </directory>
 </virtualhost> #启动服务 [root@centos7 ~]# systemctl start httpd

 4、安装nfs-utils挂载nfs共享目录

 [root@centos7 ~]# yum -y install nfs-utils # 创建挂载的目录 [root@centos7 ~]# mkdir /data/wordpress # 把共享的wordpress目录挂载到本地的/data/wordpress [root@centos7 ~]# mount 192.168.99.140:/data/wordpress /data/wordpress
# 启动httpd服务
[root@centos7 ~]# systemctl start httpd

 此时网站的目录已经通过nfs挂载到本地的目录了,然后从浏览器进行访问登录

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

先安装好一个,使用浏览器测试一下(我这里使用的是windows访问所以需要配置一下hosts文件,才可以使用域名直接访问,也可以直接使用IP进行访问)

下面就可以安装网站了

 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

 数据库和用户再之前已经创建好了,这里直接使用即可

 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

填写完 点击安装即可

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

填写web站点的信息,然后安装

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

 安装完成

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

此时wordpress博客已经搭建好, 可以正常使用了

搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构

 

 另一台LAP机器配置完直接挂载到本地的没了即可,不需要在进行网站配置了

 

以上就是LAMP的详细步骤

 

给TA打赏
共{{data.count}}人
人已打赏
随笔日记

暴风另有“暴风眼”?实控人冯鑫或涉罗静案

2020-11-9 6:10:03

随笔日记

Python基础总结之第九天开始【python之OS模块对目录的操作、以及操作文件】(新手可相互督促)

2020-11-9 6:10:05

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索