本帖最后由 liang 于 2016-4-26 21:55 编辑
网站业务架构演变过程
http://www.apelearn.com/bbs/foru ... d=8644&fromuid=6493
阅读上面的文章后做的实验
实验1:一台WEB服务器一台mysql服务器
http://www.apelearn.com/bbs/foru ... =11876&fromuid=6493
实验2:web服务器添加memcached
http://www.apelearn.com/bbs/foru ... =11884&fromuid=6493
实验(三)两台Web服务器+mysql从主
在实验二的基础上增加一台web服务器,Web1服务器NFS共享存储,mysql服务器上安装DNS,实现两台Web服务器轮询访问,再增加一台mysql服务器做主从,Web服务为discuz
web1 eth0:192.168.2.128 eth1: 192.168.5.104 centos6.7_64 LNMP
web2 eth0:192.168.2.9 eth1: 192.168.5.105 centos6.7_64 LNMP
mysql-M eth0: 192.168.2.5 eth1: 192.168.5.101 centos6.7_64 Mysql +DNS
mysql-S eth0: 192.168.2.10 eth1: 192.168.5.108 centos6.7_64 Mysql
eth0 都为外网IP,eth1都为内网IP
(一)安装NFS
Web1与Web2为了缓存一样,使用NFS共享Web根目录
(1)Web1服务器中
安装NFS
yum install -y nfs-utils rpcbind
配置共享目录
vim /etc/exports
/data/www 192.168.5.0/24(rw,sync,no_all_squash) ##权限这里感觉有待改进
启动NFS服务
/etc/init.d/rpcbind start; /etc/init.d/nfs start
开机启动
chkconfig rpcbind on
chkconfig nfs on
(2)Web2服务器中
LNMP配置文件与Web1相同
安装NFS客服端
yum install -y nfs-utils
查看服务器端共享目录
showmount -e 192.168.5.104
/data/www 192.168.5.0/24
挂载服务器端的NFS
mount -t nfs -onolock,nfsvers=3 192.168.5.104:/data/www/ /data/www/
查看挂载的情况
df -h
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 502384 0 502384 0% /dev/shm
/dev/sda1 95054 27167 62767 31% /boot
192.168.5.104:/data/www/
18344832 7868544 9537664 46% /data/www
添加开机加载
vim /etc/fstab里添加
192.168.5.104:/data/www/ /data/www/ nfs defaults 0 0
(3)mysql服务器中
登录mysql
mysql -uroot -ppasswd
授权Web2 连接
mysql>grant all on discuz.* to 'user'@'192.168.5.105' identified by 'password';
(4)Web2服务器中
添加host
vim /etc/hosts
192.168.2.9 www.test.com
查看是否正常访问
curl -I www.test.com
(5)安装memcached
过程与实验二一样
(二)安装DNS
mysql服务器中安装DNS
(1) 安装bind
yum install -y bind bind-utils
备份原配置文件
cp /etc/named.conf /etc/named.conf.bak
清空原配置
>/etc/named.conf
(2)添加配置,创建test.com域
vim /etc/named.conf
options {
directory "/var/named";
forward first; ##解析其他域名时DNS转发到119.29.29.29
forwarders { 119.29.29.29; };
};
zone "." IN {
type hint;
file "named.ca";
};
##添加解析tes.com域名
zone "test.com" IN {
type master;
file "test.com.zone";
};
##反解析test.com域名
zone "5.168.192.in-addr.arpa" IN {
type master;
file "192.168.zone";
};
修改属主
chown named /etc/named.conf
(3)创建编辑zone文件:
vim /var/named/test.com.zone
$TTL 600
@ IN SOA test.com. root.test.com. (
2016081601
1H
10M
7D
1 D )
IN NS ns.test.com.
ns IN A 192.168.5.101
www IN A 192.168.2.128
www IN A 192.168.2.9
(4)创建编辑反解析文件:
vim /var/named/192.168.zone
$TTL 600
@ IN SOA ns.test.com. root.test.com. (
2016081601
1H
10M
7D
1D )
@ IN NS ns.test.com.
101 IN PTR ns.test.com.
128 IN PTR www.test.com.
9 IN PTR www.test.com.
(5)分别检测两个配置文件是否有问题:
named-checkzone "test.com" test.com.zone
named-checkzone "5.168.192.in-addr.arpa" 192.168.zone
生成 rndc.key,没有key,named启动不了
rndc-confgen -r /dev/urandom -a
chown named:named /etc/rndc.key
启动named
/etc/init.d/named start
chkconfig named on
测试解析和反解析
dig @127.0.0.1 www.test.com
dig @127.0.0.1 -x 192.168.5.101
(6)Web1和Web2服务器中
修改DNS
vim /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth1
指定DNS服务器IP为系统默认DNS(指定DNS内网外网IP都可以)
DNS1=192.168.5.101
service network restart
查看DNS,是否正确
vim /etc/resolv.conf
测试,多次Ping看是否轮询访问
ping www.test.com
(三) mysql的主从的配置
mysql主 eth0: 192.168.2.5 eth1: 192.168.5.101 centos6.7_64 Mysql+DNS
mysql从 eth0: 192.168.2.10 eth1: 192.168.5.108 centos6.7_64 Mysql
(1)mysql主 中
备份mysql数据
mysqldump -uroot -p -A > sql_back.sql
编辑配置文件
vim /etc/my.cnf
server_id = 1 打开设置1,必须和从的数字不同
log_bin=user 打开log_bin,设置命令user
#binlog-do-db=db1,db2 #指定要同步的库,可设置多个库
#binlog-ignore-db=db1.db2 #同步的库太多时,指定忽略不同步的库
修改后重启
/etc/init.d/mysqld restart
配置授权
mysql -uroot -ptoor -S /tmp/mysql.sock
>grant replication slave on *.* to 'repl'@'192.168.5.108' identified by '123456'; ##Mysql从的IP
>flush privileges; #刷新
>flush tables with read lock; #锁死
>show master status; #读取数据,记住前两列内容,后面会用到
+--------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+--------------+----------+--------------+------------------+-------------------+
| user.000001 | 450 | | | |
+--------------+----------+--------------+------------------+---------------
(2)mysql从配置
安装mysql后
编辑从的配置文件
vim /usr/local/mysql/my.cnf
server-id = 2 ##修改与主不同
log_bin=user ##与主相同
service mysql restart
将主备份的数据恢复到从
mysql -uroot -p -A < sql_back.sql
登录从mysql
mysql -uroot -p
>stop slave; 停止从
>change master to master_host='192.168.5.101', master_port=3306,master_user='repl', master_password='123456',master_log_file='user.000001', master_log_pos=450;
>start slave; 开启从
##master_log_file和master_log_pos就是在上面使用 show master status; 查到的数据
(3)测试
1,在主mysql上,解锁表
mysql -uroot -ptoor -S /tmp/mysql.sock -e "unlock tables"
2,在从上查看状态
mysql -uroot -ptoor
>show slave status\G;
两个都是yes才正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
3,测试主从
测试步骤为主上面执行一条命名,在从上面查看是否同步
禁止在从上修改数据库
登录主
mysql -uroot -ptoor
>create database db1;
>show databases;
>use db1;
>show tables;
>create table t (`id` int(4), `name` char(40)); ##创建一个表t1
>show tables;
>drop database db1;
登录从
mysql -uroot -ptoor
>show databases;
>use db1;
>show tables;
>show databases;
>show databases;
DNS负载均衡缺点是一台Web服务器宕机后,会有一半用户无法访问
#有错误的地方请指正
网站业务架构演变过程
http://www.apelearn.com/bbs/foru ... d=8644&fromuid=6493
阅读上面的文章后做的实验
实验1:一台WEB服务器一台mysql服务器
http://www.apelearn.com/bbs/foru ... =11876&fromuid=6493
实验2:web服务器添加memcached
http://www.apelearn.com/bbs/foru ... =11884&fromuid=6493
实验(三)两台Web服务器+mysql从主
在实验二的基础上增加一台web服务器,Web1服务器NFS共享存储,mysql服务器上安装DNS,实现两台Web服务器轮询访问,再增加一台mysql服务器做主从,Web服务为discuz
web1 eth0:192.168.2.128 eth1: 192.168.5.104 centos6.7_64 LNMP
web2 eth0:192.168.2.9 eth1: 192.168.5.105 centos6.7_64 LNMP
mysql-M eth0: 192.168.2.5 eth1: 192.168.5.101 centos6.7_64 Mysql +DNS
mysql-S eth0: 192.168.2.10 eth1: 192.168.5.108 centos6.7_64 Mysql
eth0 都为外网IP,eth1都为内网IP
(一)安装NFS
Web1与Web2为了缓存一样,使用NFS共享Web根目录
(1)Web1服务器中
安装NFS
yum install -y nfs-utils rpcbind
配置共享目录
vim /etc/exports
/data/www 192.168.5.0/24(rw,sync,no_all_squash) ##权限这里感觉有待改进
启动NFS服务
/etc/init.d/rpcbind start; /etc/init.d/nfs start
开机启动
chkconfig rpcbind on
chkconfig nfs on
(2)Web2服务器中
LNMP配置文件与Web1相同
安装NFS客服端
yum install -y nfs-utils
查看服务器端共享目录
showmount -e 192.168.5.104
/data/www 192.168.5.0/24
挂载服务器端的NFS
mount -t nfs -onolock,nfsvers=3 192.168.5.104:/data/www/ /data/www/
查看挂载的情况
df -h
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 502384 0 502384 0% /dev/shm
/dev/sda1 95054 27167 62767 31% /boot
192.168.5.104:/data/www/
18344832 7868544 9537664 46% /data/www
添加开机加载
vim /etc/fstab里添加
192.168.5.104:/data/www/ /data/www/ nfs defaults 0 0
(3)mysql服务器中
登录mysql
mysql -uroot -ppasswd
授权Web2 连接
mysql>grant all on discuz.* to 'user'@'192.168.5.105' identified by 'password';
(4)Web2服务器中
添加host
vim /etc/hosts
192.168.2.9 www.test.com
查看是否正常访问
curl -I www.test.com
(5)安装memcached
过程与实验二一样
(二)安装DNS
mysql服务器中安装DNS
(1) 安装bind
yum install -y bind bind-utils
备份原配置文件
cp /etc/named.conf /etc/named.conf.bak
清空原配置
>/etc/named.conf
(2)添加配置,创建test.com域
vim /etc/named.conf
options {
directory "/var/named";
forward first; ##解析其他域名时DNS转发到119.29.29.29
forwarders { 119.29.29.29; };
};
zone "." IN {
type hint;
file "named.ca";
};
##添加解析tes.com域名
zone "test.com" IN {
type master;
file "test.com.zone";
};
##反解析test.com域名
zone "5.168.192.in-addr.arpa" IN {
type master;
file "192.168.zone";
};
修改属主
chown named /etc/named.conf
(3)创建编辑zone文件:
vim /var/named/test.com.zone
$TTL 600
@ IN SOA test.com. root.test.com. (
2016081601
1H
10M
7D
1 D )
IN NS ns.test.com.
ns IN A 192.168.5.101
www IN A 192.168.2.128
www IN A 192.168.2.9
(4)创建编辑反解析文件:
vim /var/named/192.168.zone
$TTL 600
@ IN SOA ns.test.com. root.test.com. (
2016081601
1H
10M
7D
1D )
@ IN NS ns.test.com.
101 IN PTR ns.test.com.
128 IN PTR www.test.com.
9 IN PTR www.test.com.
(5)分别检测两个配置文件是否有问题:
named-checkzone "test.com" test.com.zone
named-checkzone "5.168.192.in-addr.arpa" 192.168.zone
生成 rndc.key,没有key,named启动不了
rndc-confgen -r /dev/urandom -a
chown named:named /etc/rndc.key
启动named
/etc/init.d/named start
chkconfig named on
测试解析和反解析
dig @127.0.0.1 www.test.com
dig @127.0.0.1 -x 192.168.5.101
(6)Web1和Web2服务器中
修改DNS
vim /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth1
指定DNS服务器IP为系统默认DNS(指定DNS内网外网IP都可以)
DNS1=192.168.5.101
service network restart
查看DNS,是否正确
vim /etc/resolv.conf
测试,多次Ping看是否轮询访问
ping www.test.com
(三) mysql的主从的配置
mysql主 eth0: 192.168.2.5 eth1: 192.168.5.101 centos6.7_64 Mysql+DNS
mysql从 eth0: 192.168.2.10 eth1: 192.168.5.108 centos6.7_64 Mysql
(1)mysql主 中
备份mysql数据
mysqldump -uroot -p -A > sql_back.sql
编辑配置文件
vim /etc/my.cnf
server_id = 1 打开设置1,必须和从的数字不同
log_bin=user 打开log_bin,设置命令user
#binlog-do-db=db1,db2 #指定要同步的库,可设置多个库
#binlog-ignore-db=db1.db2 #同步的库太多时,指定忽略不同步的库
修改后重启
/etc/init.d/mysqld restart
配置授权
mysql -uroot -ptoor -S /tmp/mysql.sock
>grant replication slave on *.* to 'repl'@'192.168.5.108' identified by '123456'; ##Mysql从的IP
>flush privileges; #刷新
>flush tables with read lock; #锁死
>show master status; #读取数据,记住前两列内容,后面会用到
+--------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+--------------+----------+--------------+------------------+-------------------+
| user.000001 | 450 | | | |
+--------------+----------+--------------+------------------+---------------
(2)mysql从配置
安装mysql后
编辑从的配置文件
vim /usr/local/mysql/my.cnf
server-id = 2 ##修改与主不同
log_bin=user ##与主相同
service mysql restart
将主备份的数据恢复到从
mysql -uroot -p -A < sql_back.sql
登录从mysql
mysql -uroot -p
>stop slave; 停止从
>change master to master_host='192.168.5.101', master_port=3306,master_user='repl', master_password='123456',master_log_file='user.000001', master_log_pos=450;
>start slave; 开启从
##master_log_file和master_log_pos就是在上面使用 show master status; 查到的数据
(3)测试
1,在主mysql上,解锁表
mysql -uroot -ptoor -S /tmp/mysql.sock -e "unlock tables"
2,在从上查看状态
mysql -uroot -ptoor
>show slave status\G;
两个都是yes才正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
3,测试主从
测试步骤为主上面执行一条命名,在从上面查看是否同步
禁止在从上修改数据库
登录主
mysql -uroot -ptoor
>create database db1;
>show databases;
>use db1;
>show tables;
>create table t (`id` int(4), `name` char(40)); ##创建一个表t1
>show tables;
>drop database db1;
登录从
mysql -uroot -ptoor
>show databases;
>use db1;
>show tables;
>show databases;
>show databases;
DNS负载均衡缺点是一台Web服务器宕机后,会有一半用户无法访问
#有错误的地方请指正
编辑回复