材料:XManager;七台CentOS(Linux)系统虚拟机(一台安装nginx,两台安装Tomcat+JDK,一台安装mycat,三台安装mysql数据库:一台master主节点,两台slave从节点)
一、安装JDK
1、将JDK安装包使用xftp上传到虚拟机/opt文件夹下解压
1.1上传安装包
1.2查看安装包
1.3解压
2、配置JDK的配置环境
2.1进入/etc/profile进行编辑
vi /etc/profile
2.2来到profile文件末尾,进入编辑模式,配置环境变量
#JAVA_HOMEexport JAVA_HOME=/opt/jdk1.8#PATHexport PATH=$PATH:$JAVA_HOME/bin
List item
2.3保存退出
3、使配置生效
source /etc/profile
4、测试是否安装成功
使用 java 、java --version命令进行测试
二、安装Tomcat
1、上传解压打开tomcat
1.1上传、解压步骤与安装JDK相同
1.2开启tomcat:进入tomcat目录下的bin目录执行startup.sh文件
./startup.sh
三、nginx的安装
1、centos系统中默认的yum仓库中没有nginx的安装包,所以要想安装nginx需要单独指定他的仓库地址
1.1 将nginx.repo上传到linux服务器下的/etc/yum.repos.d/下
nginx.repo文件说明:
name=# 一个描述,随意;
baseurl=# 设置资源仓库的地址;
gpkcheck=0 表示对从这个源下载的rpm包不进行校验;
enable=1表示启用这个源
```bash
[nginx]name=nginx repo baseurl=/packages/centos/7/x86_64/gpgcheck=0enable=1```
2、安装nginx
yum install nginx
3、启动nginx
systemctl start nginx
3.1查看nginx状态
systemctl status nginx
显示这样的状态就是开启成功
四、使用nginx实现负载均衡
1、这里使用三台虚拟机,一台安装nginx,两台安装tomcat+jdk
1.1 使用dhclient命令为三台机器分配ip地址,以备后续使用
我这里三台计算机的ip为
192.168.10.131(安装nginx)
192.168.10.129
192.168.10.130
1.2 使用systemctl stop firewalld 关闭防火墙
2、配置负载均衡
2.1 打开/etc/nginx/conf.d/文件
#新增upstream aa{server 192.168.10.129:8080;server 192.168.10.130:8080;}server{#在location/{}中添加 (注:下边的aa与upstream aa中的aa相统一)proxy_pass http://aa}
3、重启nginx服务
systemctl restart nginx
4、关闭linux安全
vi /etc/selinux/config
注意:linux系统关闭安全组之后,必须重启服务器 使用reboot命令
5、测试
输入http:192.168.10.131:80 访问nginx 实际访问的是tomcat
6、nginx的负载均衡策略
6.1 轮询(默认)
6.2 权重
weight=数值 ,数字越大,权重越高,权重越高访问次数越高
upstream aa{server ip:8080 weight=2;server ip:8080 weight=1;}
6.3 ip黏着
特点:根据用户的ip固定的访问某台tomcat
upstream aa{#新增ip_hash; server ip:8080;server ip:8080 ;}
五、安装mysql
1、安装方式1
1.1将mysql的rpm安装包上传到/opt下
1.2安装vim
yum install vim
1.3卸载mariabd数据库
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
解释:centos7自带的mariabd数据库和我们要安装的mysql有冲突
1.4 进入/opt/mysql_rpm文件夹,使用rpm命令安装
rpm -ivh perl-*rpm -ivh net-tools-2.0-0.22.1004git.el7.x86_64.rpmrpm -ivh mysql-community-*
1.5 启动mysql数据库
systemctl start mysqld
1.6 登录mysql数据库
mysql -uroot -p 默认没有密码
1.7 修改密码,允许远程访问
1. use mysql 2. select host,user,password from user3. update user set password=password('123456') where user='root';4. update user set host='%' where host='127.0.0.1';
1.8 执行 flush privileges 否则需要重启mysql数据库才能生效
2、安装方式2
参照本人另一篇博客【使用wget安装mysql】
六、mysql主从分离
准备工作:准备三台安装了mysql数据库的服务器
确保服务器的防火墙都关闭了
1、操作主机
1.1 修改/etc/f文件
server-id=1log_binbinlog-do-db=baizhi(要同步的数据库)binlog-ignore-db=mysql(忽略同步的数据库)
1.2 重启mysql数据库
systemctl restart mysqld
1.3 登录mysql数据库
mysql -uroot -p123456
1.4 show master status ;
解释:file—> 日志文件
position(位置) —> 日志文件目前的位置
主从复制的原理:通过日志文件以及日志的位置,告诉从机应该从哪文件的哪个位置开始备份,
只要操作主机的数据库,从机就应该从120这个位置以后的操作进行备份(同步)操作
2、修改从节点
说明:如果是克隆的虚拟机需要先删除从机上的 /var/lib/mysql/f文件
2.1 修改 /etc/f
server-id=133()
2.2 重启从机上mysql数据库
systemctl restart mysqld
2.3 登录从机mysql数据库
2.4 设置从节点的状态
stop slave;
2.4.1告诉当前从机应该去哪找主节点,然登录主节点获取日志文件,从哪个位置开始备份
change master to master_host='主机的ip',master_user='主机用户名',master_password='主机的密码',master_log_file=’xx’,master_log_pos=xx;start salve;
2.5查看从节点的状态 (两个都为yes即设置成功)
show slave status\G
七、使用mycat实现读写分离
准备工作:创建一台虚拟机安装mycat(安装有JDK)
确保关闭防火墙
1、mycat安装
1.1 上传mycat安装包 /opt下
1.2 解压安装
1.3 配置环境变量
vi /etc/profile
#JAVA_HOMEexport JAVA_HOME=/opt/jdk1.8#MYCAT_HOMEexport MYCAT_HOME=/opt/mycat#PATHexport PATH=$PATH:$JAVA_HOME/bin:$MYCAT_HOME/bin
1.4 source profile
1.5 修改/confg目录下的server.xml和schema.xml配置文件
1.5.1 修改server.xml
1.5.2 修改schema.xml
1.6 启动mycat
mycat
1.7 连接测试
八、通过nginx、mycat实现负载均衡以及对数据库的读写分离
注意项目中数据库连接的url需要修改为安装mycat的机器的ip地址,数据库名为schema.xml配置文件中的数据库名
jdbc.driverClass=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://192.168.10.134:8066/TESTDB?useUnicode=true&characterEncoding=utf8jdbc.user=rootjdbc.password=123456