京淘实训Day12-Nginx安装-数据库高可用

1.nginx安装

1.1下载安装包

wget http://nginx.org/download/nginx-1.19.0.tar.gz

1.2解压安装包

	tar -xvf nginx-1.19.0.tar.gz

1.3Nginx安装

安装说明: 位于/usr/local/src/nginx是源文件目录.不负责真实的运行!!! 该文件通 过编译与安装,动态生成可执行的nginx文件.需要注意可执行文件的位置. 可执行文件的位置与源文件的位置不一样!!!.

  1. 编译nginx服务器
  2. make
  3. make install

1). ./configure
京淘实训Day12-Nginx安装-数据库高可用
2).执行结果
通过上述的命令,在linux中的/usr/local/nginx中生成nginx的可执行目录.
京淘实训Day12-Nginx安装-数据库高可用
3).执行make和make install命令
说明:在nginx的源文件目录下执行

	make
	make install
	whereis nginx

京淘实训Day12-Nginx安装-数据库高可用

1.4Nginx命令

京淘实训Day12-Nginx安装-数据库高可用
命令:

1. 启动nginx        ./nginx
	2. 重启nginx        ./nginx   -s  reload
	3. 关闭nginx        ./nginx   -s  stop

1.5Nginx启动测试

京淘实训Day12-Nginx安装-数据库高可用

1.6 winscp软件

WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。

这是一个简体中文版本的介绍,这里的链接大多数是英文的页面,您可以使用Google来进行翻译。
京淘实训Day12-Nginx安装-数据库高可用
通过客户端登陆
京淘实训Day12-Nginx安装-数据库高可用

1.7 利用winscp软件修改nginx 配置文件

1).配置反向代理

	#实现图片代理
	server {
		listen  80;
		server_name  image.jt.com;

		location / {

			root /usr/local/src/images;
		}
	}
	
	#实现域名的代理
	server {
		listen  80;
		server_name  manage.jt.com;

		location / {

			proxy_pass http://tomcats;
		}
	}

	#搭建Linux版本集群
	upstream tomcats {
		server 192.168.126.129:8081;
		server 192.168.126.129:8082;
		server 192.168.126.129:8083;
	}

说明:将配置准备好之后,将文件上传到Linux 系统中.
京淘实训Day12-Nginx安装-数据库高可用

2).重启nginx服务器
京淘实训Day12-Nginx安装-数据库高可用

1.8 准备3台tomcat服务器

说明:分别修改8081/8082/8083端口号,之后依次打包部署到Linux服务器中.
京淘实训Day12-Nginx安装-数据库高可用

1.9 启动3台tomcat服务器

java -jar 8081.war & java -jar 8082.war & java -jar 8083.war &

通过命令,检查tomcat服务器启动是否正常.
京淘实训Day12-Nginx安装-数据库高可用

1.10 修改hosts文件

说明:修改hosts文件,模拟全球的DNS域名解析服务器.

#配置Linux环境下的服务
192.168.126.129       image.jt.com
192.168.126.129       manage.jt.com

# 京淘电商环境
#127.0.0.1       image.jt.com
#127.0.0.1       manage.jt.com
127.0.0.1       www.jt.com
127.0.0.1       sso.jt.com

1.11 nginx项目测试

京淘实训Day12-Nginx安装-数据库高可用

1.12 tomcat服务器后台启动配置

说明: 通过命令 java -jar 8081.war & 启动tomcat服务器, 当前链接终端断开之后,tomcat会关闭.’
原因说明: java -jar的方式会占用当前的终端,同时当终端关闭之后, 所有的tomcat服务器也会停止.
要求: tomcat服务器可以通过后台启动.
命令:

nohup java -jar 8081.war -> 8081.log & nohup java -jar 8082.war -> 8082.log  & nohup java -jar 8083.war -> 8083.log &

京淘实训Day12-Nginx安装-数据库高可用

2.数据库高可用实现

2.1什么是高可用(HA)

说明: 当服务出现了问题,利用高可用的机制,可以自动的实现故障的迁移.从而不影响用户的使用.

2.2数据库高可用实现的策略

利用数据库代理的思想,实现数据库分库分表.
京淘实训Day12-Nginx安装-数据库高可用

2.3 数据库从库配置

2.3.1 设计思路

说明: 准备2台数据库, 一台主库/一台从库
IP划分:
192.168.126.129 主库
192.168.126.130 从库

2.3.2克隆虚拟机

准备全新的虚拟机,准备2个Linux操作系统
京淘实训Day12-Nginx安装-数据库高可用
京淘实训Day12-Nginx安装-数据库高可用

2.3.2修改虚拟机IP地址

1).通过xshell工具动态链接第二台linux服务器.
京淘实训Day12-Nginx安装-数据库高可用
2).编辑IP配置文件
配置文件路径: cd /etc/sysconfig/network-scripts/
京淘实训Day12-Nginx安装-数据库高可用
修改IP配置文件;
京淘实训Day12-Nginx安装-数据库高可用
3). 重置网卡IP地址
命令:

 1.service network restart
 2.systemctl restart NetworkManager

4).校验网卡地址是否有效
京淘实训Day12-Nginx安装-数据库高可用

2.3.3安装从数据库

1).安装mariadb数据库 yum install mariadb-server
京淘实训Day12-Nginx安装-数据库高可用
2). 启动mariadb数据库

systemctl  start mariadb

3).配置数据库

mysql_secure_installation

京淘实训Day12-Nginx安装-数据库高可用
4).配置数据库权限
查看当前数据库用户信息.
京淘实训Day12-Nginx安装-数据库高可用
修改用户信息:

MariaDB [mysql]> update user set host = "%" where host = "localhost";

京淘实训Day12-Nginx安装-数据库高可用
5).刷新数据库权限

MariaDB [mysql]> flush privileges;

6).关闭防火墙
6.1关闭防火墙配置 systemctl disable firewalld.service
6.2 关闭防火墙 systemctl stop firewalld.service

7).数据库远程链接
京淘实训Day12-Nginx安装-数据库高可用
京淘实训Day12-Nginx安装-数据库高可用

2.4 实现数据库数据平衡

2.4.1 业务说明

说明: 主库中有jtdb的数据库信息.,但是由于长时间的编辑导致数据发生变化.为了实现数据库的主从的同步,必须保证配置之前数据库中的记录一致.

2.4.2 检查主数据库是否正常

京淘实训Day12-Nginx安装-数据库高可用
启动主数据库
京淘实训Day12-Nginx安装-数据库高可用
通过数据库工具进行链接
京淘实训Day12-Nginx安装-数据库高可用

2.4.3 实现数据库导入/导出功能

步骤:
1.将主库信息导出.
京淘实训Day12-Nginx安装-数据库高可用
导出主库记录:
京淘实训Day12-Nginx安装-数据库高可用

2.在从库中导入主库信息,至此实现了数据库的平衡.

京淘实训Day12-Nginx安装-数据库高可用
3.导出导入后的效果
京淘实训Day12-Nginx安装-数据库高可用

2.5 数据库主从复制

2.5.1 什么是主从复制

说明:由于业务需要,需要保证数据库中的信息不丢失.所以必须实现数据库的数据备份.
备份方式:
1). 数据库冷备份
定期将数据库的信息进行导出操作. 防止数据库发生意外导出数据丢失.
缺点: 由于是定期备份.所以可能导致数据库记录丢失.(数据就是金钱)
2).数据库热备份
概念:准备2台或者多台数据库,实现了数据的实时备份.

2.5.2 数据库热备份的原理

京淘实训Day12-Nginx安装-数据库高可用
组件说明:
1.二进制文件: 记录主库做"更新"操作的所有的记录.
2.I/OThread: 当主库中二进制文件信息更新时,会读取该文件,之后将数据写入中继日志中.
3.中继日志: 用来临时存储主库的更新数据的信息.
4.sqlThread: 循环的读取中继日志中的记录.将该记录信息写入从数据库中,最终实现了数据库主库和从库的数据的同步.

2.6.实现主从的配置

2.6.1 开启主库二进制日志文件

说明:数据库中默认条件下,二进制文件都是关闭的,需要手动的开启
编辑配置文件: vim /etc/my.cnf
京淘实训Day12-Nginx安装-数据库高可用
2修改配置文件
京淘实训Day12-Nginx安装-数据库高可用
3.重启mysql数据库
因为修改了mysql的核心配置文件,所以需要重启数据库.校验二进制文件是否存在.
京淘实训Day12-Nginx安装-数据库高可用

2.6.2 开启从库的二进制文件

具体步骤参见上述操作.
命令: vim /etc/my.cnf
京淘实训Day12-Nginx安装-数据库高可用
重启从库,检查二进制文件的位置是否正确.
京淘实训Day12-Nginx安装-数据库高可用

2.7实现数据库主从配置

说明: 在从库进行命令的操作,实现主从的挂载.

2.7.1 检查主库的状态信息.

命令: show master status;

文件说明: mysql-bin 代表了二进制文件信息.
		        position     245     二进制文件的位置信息.

京淘实训Day12-Nginx安装-数据库高可用

2.7.2 编辑从库实现主从挂载

/*130  我是数据库的从,需要指定主机进行挂载*/
/*主机host/port/用户名/密码/二进制文件/位置 
  问:自己挂载自己打一部电影  类型:惊悚/恶心类型 XXXX蜈蚣
*/
CHANGE MASTER TO MASTER_HOST="192.168.126.129",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=245;

/*2:开启主从服务*/
START  SLAVE;

/*3.检查主从的状态*/
SHOW SLAVE STATUS;


/*4.如果没有出现2个yes 则执行下列操作
  停止主从服务 之后 检查IO日志信息,之后重新挂载
*/
STOP SLAVE; //之后重新执行1-3步


检查状态: 如果出现2个yes,则表示主从搭建一切正常.
京淘实训Day12-Nginx安装-数据库高可用

注意事项: 只能由主库向从库实现数据的同步!!!. 切记暂时不要修改从库数据!!!

3.MyCat学习

3.1 Mycat介绍

京淘实训Day12-Nginx安装-数据库高可用

3.1 Mycat实现数据库读写分离

3.1.1上传Mycat安装包

京淘实训Day12-Nginx安装-数据库高可用

3.1.2解压Mycat

tar -xvf Mycat-server-1.7.0-DEV-20170416134921-linux.tar.gz

京淘实训Day12-Nginx安装-数据库高可用

3.1.3 server.xml配置文件说明

说明:server.xml的配置文件主要负责客户端与Mycat数据库代理之间的配置,包括用户名/密码/端口号等信息.
配置说明:
1.<property name="serverPort">8066</property> 8066是数据库代理的端口号信息.
2.配置用户信息

<!--用户标签-->
	<user name="root">
		<property name="password">root</property>
		<!--与schema.xml中的配置相同 注意数据库的大小写-->
		<property name="schemas">jtdb</property>
	</user>

	<user name="user">
		<property name="password">user</property>
		<property name="schemas">jtdb</property>
		<property name="readOnly">true</property>
	</user>

3.1.4 编辑schema.xml配置文件

说明:写操作主要操作的是129数据库. 读操作 可以读取129/130. 注意用户名和密码.

		<writeHost host="hostM1" url="192.168.126.129:3306" user="root" password="root">
			<!--读数据库1-->
			<readHost host="hostS1" url="192.168.126.130:3306" user="root" password="root" />
			<!--读数据库2-->
			<readHost host="hostS2" url="192.168.126.129:3306" user="root" password="root" />
			
		</writeHost>

3.1.5上传配置文件

说明:将mycat中的conf文件目录下的旧文件删除.之后上传新的文件信息.

[root@bogon conf]# rm -f schema.xml server.xml

京淘实训Day12-Nginx安装-数据库高可用

3.1.6Mycat启动测试

说明:找到mycat的bin目录之后执行相关命令

京淘实训Day12-Nginx安装-数据库高可用
命令:
京淘实训Day12-Nginx安装-数据库高可用
京淘实训Day12-Nginx安装-数据库高可用

3.1.6数据读写分离测试

说明:修改数据库链接地址,指向代理服务器即可.

spring:
  datasource:
    #引入druid数据源
    #type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://192.168.126.129:8066/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    password: root

知识回顾:

1.安装Linux nginx实现反向代理
2.了解tomcat服务器后台运行的命令
3.了解数据库同步的原理
4.实现什么是读写分离.

作业

1.实现数据库的主从的搭建    
	测试:修改主库的信息,,检查从库是否实现数据的同步. 	         微信小视频录一下
2. 启动mycat服务器.利用代理的方式测试读写的分离是否正常. 	 微信小视频录一下
上一篇:Day12_搜索过滤


下一篇:day12装饰器进阶