硬件环境:五台dell服务器(DELL R540服务器做raid按F2)
操作系统:centos7.3
需求:
1、两台服务器做MySQL主从同步以及靠可用
2、五台服务器安装nginx并作web发布,其中两台做负载均衡
一、安装服务前提,配置分区
因为硬盘都是超过2T的,所以不能用常规的fdsik命令来分区。
fdsik -l #查看本地所有的磁盘
parted /dev/sda #找到未分区的磁盘,准备分区
mklable pgt #将磁盘设置为gpt个格式的磁盘
mkpart primary 0 4T #分一个4T的主分区
quit #退出
二、配置五台服务器本地共享yum源
在集群中找一台空闲的服务器做web发布服务器,丢上去一个镜像,先挂载到本地。
mount -o loop -t iso9660 /root/centos7.3.iso /mnt
加入到/etc/fstab #开机自启
/root/centos7.3.iso /mnt iso9660 default,loop 0 0
安装web发布服务apache
yum install httpd -y
更改apache发布的默认目录
vim //etc/httpd/conf/httpd.conf
找到 DocumentRoot “/var/www/html”
将默认目录改为/mnt
注销欢迎网页
vim /etc/httpd/conf.d/welcome.conf
注销里面的页面内容
启动apache
systemctl start httpd
访问本地地址(192.168.1.10) 会有镜像里面的所有文件
其他主机yum配置
cd /etc/yum.repo.d/
rm -rf ./*(斜杠前面有个点)
vim defaults.repo
[name]
baseurl=http://192.168.1.10 #共享yum主机的地址
enabled=1
gpgcheck=0
保存退出
所有主机都这样配置即可,然后就可以直接用yum源,不用再上传iso文件
三、安装MySQL做主从同步
MySQL版本5.7
MySQL自行安装阔以百度哈,这里不写安装过程
安装完MySQL之后,开始做主从同步
master:192.168.1.1
slave:192.168.1.2
更改主数据库配置文件,启用二进制文件
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=1 #master设置为1 slave设置为2
更改从数据库配置文件
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=2
先分别给两台服务器刷权限
mysql> grant all privileges on *.* to root@”%” identified by “123456” with grant option;
查看slave的master状态
mysql > show master \G
记录下master和slave的file文件名称和pos的id
配置主从同步:(在从库上配置)
在slave上配置
mysql> change master to master_host=’192.168.1.10′,master_user=’root’,master_password=’123456′,master_log_file=’binlog.000006′,master_log_pos=76070;
启动主从同步
mysql > start slave;
查看SQL线程和IO线程是否正常开启
mysql > show slave status \G
这就代表成功了
可以在主库中新建表、或者写数据来进行测试
四、安装keepalived做MySQL的高可用。
下载好keepalived的软件包
在master、slave两台数据库中分别安装keepalived。
解压keepalived安装包
tar-zxvf keepalived-1.2.8.tar.gz
切换到keepalived目录下编译安装
cdkeepalived-1.2.8
./configure –prefix=/usr/local/keepalived
–with-kernel-dir=/usr/src/kernels/2.6.18-308.el5xen-i686/
make&& make install
拷贝文件到相关目录
cp/usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp/usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp/usr/local/keepalived/sbin/keepalived /usr/sbin/
mkdir-p /etc/keepalived
cp/usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
配置keepalived
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id mysql
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 60
priority 100 #定义主从关系,数值越大优先级越高
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.103.106/24 #定义一个虚拟IP,当主服务器MySQL挂掉,这个ip会切换到从服务器上
}
}
virtual_server 192.168.103.106 3306 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout 5
protocol TCP
real_server 192.168.103.100 3306 { #本地监听服务端口
weight 3
notify_down /usr/local/keepalived/master.sh
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
配置从服务器,从服务器上只有 priority 和 real_server与主服务器不同,其他一样,real_server为本地IP,prioity数值要比主服务器小,取其一半。
启动服务
systemctl start keepalived
测试:
将主服务器上的MySQL停掉看虚拟IP是否会转移动slave上
查看命令
ip addr show dev em1 #em1为网卡名称
五、ftp服务搭建
yum install vsftpd -y
useradd ftpuser #创建ftp用户
passwd ftpuser #设置用户密码
chown ftpuser /var/www/html #指定该目录所有者
chgrp ftpuser /var/www/html #指定该目录所属组
usermod -d /var/www/html ftpuser #指定该用户登入时的目录
给ftp远程登陆时候的权限
sestatus -b | grep ftp
setsebool -P ftp_home_dir on (依次类推,把红色部分的权限都开)
启动服务
systemctl start vsftpd
在电脑上测试
六、nginx负载均衡加web发布
利用nginx来做负载均衡以及一个web发布服务,主要发布的是ftp上的文件
安装prex
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure(此处若报错,检查是否安装gcc)
make
make install
安装nginx
tar -zxvf nginx-1.2.5.tar.gz
cd nginx-1.2.5
./configure
make
make install
启动nginx
cd /usr/local/nginx/sbin
./nginx
关闭nginx
pkill nginx
配置nginx配置文件,将其中一台做负载均衡并且可以访问自己本地文件
配置如下:
upstream nginx #配置多个负载的主机IP
{
server 192.168.103.10:80 weight=4 max_fails=2 fail_timeout=30s;
server 192.168.103.11:80 weight=4 max_fails=2 fail_timeout=30s;
}
server {
listen 80; #监听本地80端口
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://nginx; #转发的地址
}
}
server {
listen 8090; #基于端口的虚拟主机,访问8090所访问目录
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /var/www/html; #指定nginx默认访问目录
index index.html index.htm;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
再启动nginx
END