材料: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
  1. 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=http://nginx.org/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/default.com文件

#新增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.20131004git.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/my.cnf文件

    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/auto.cnf文件
2.1 修改 /etc/my.cnf
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_HOME
export 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.Driver
jdbc.url=jdbc:mysql://192.168.10.134:8066/TESTDB?useUnicode=true&characterEncoding=utf8
jdbc.user=root
jdbc.password=123456

nginx+mycat实现负载均衡、数据库的主从复制、读写分离相关推荐

  1. Nginx 之五: Nginx服务器的负载均衡、缓存与动静分离功能

    一.负载均衡: 通过反向代理客户端的请求到一个服务器群组,通过某种算法,将客户端的请求按照自定义的有规律的一种调度调度给后端服务器. Nginx的负载均衡使用upstream定义服务器组,后面跟着组名 ...

  2. (转)nginx+iis实现负载均衡

    nginx+iis实现负载均衡 最近在研究分布式系统架构方面的知识,包括负载均衡,数据库读写分离,分布式缓存redis等.本篇先从负载均衡服务架构入手,关于负载均衡百度百科的定义如下:负载均衡,英文名 ...

  3. nginx+tomcat+memcached负载均衡

    2019独角兽企业重金招聘Python工程师标准>>> nginx+tomcat+memcached负载均衡 负载均衡: 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服 ...

  4. Nginx + IIS实现负载均衡 Session多站点共享

    日子过得太索然无味了,研究了一下,所谓的负载均衡(主要是windows服务器IIS下的).先看看分析图: 环境: linux服务器: centos 6.3 windows服务器: windows se ...

  5. nginx+tomcat+redis负载均衡及session共享

    概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.o ...

  6. windows使用nginx+memcached实现负载均衡和session或者缓存共享

    windows使用nginx+memcached实现负载均衡和session或者缓存共享 两台server server1:115.29.186.215 windows2008 64位操作系统 ser ...

  7. Nginx + Tomcat 实现负载均衡

    文章目录 引言 一.案例架构 二.安装部署 1. nginx 服务器安装部署 1.1 脚本一键安装部署 1.2 配置修改 2. tomcat01 服务器安装部署 2.1 安装 JDK 环境 2.2 安 ...

  8. Nginx学习之负载均衡fair模块

    2019独角兽企业重金招聘Python工程师标准>>> Nginx学习之负载均衡fair模块 2017-04-10 20:27 写在开始 前面对Nginx的三种负载均衡实现做了一个简 ...

  9. 基于nginx的tomcat负载均衡和集群(超简单)

    今天看到"基于apache的tomcat负载均衡和集群配置 "这篇文章成为javaEye热点. 略看了一下,感觉太复杂,要配置的东西太多,因此在这里写出一种更简洁的方法. 要集群t ...

最新文章

  1. [转]JavaScript代码收集
  2. ninject 的 实现 的 理解
  3. Linux获得命令帮助
  4. Rails 3.1 CoffeeScript SASS初体验
  5. 前端:CSS/12/display属性,overflow属性,cursor光标类型,CSS定位,综合案例:今日闪价
  6. 嵌入式Linux系统编程学习之二十五信号量
  7. qdebug 调试 输出乱码_Python里三个最高逼格的调试神器
  8. 当前局域网禁止BT下载的常用工具及其弊端。
  9. iOS开发中那些高效常用的宏
  10. VC编程获取和修改环境变量,不重启系统即时生效
  11. 移动网优大神VoLTE学习笔记(四):主叫信令流程
  12. IDEA 打包jar
  13. matlab面板数据怎么求增长率的公式,环比增长率怎么算公式表格(教你如何计算同比增长率)...
  14. 用C语言编程验证 “ 哥德巴赫猜想 ”
  15. 【解决】电脑开给手机开热点问题
  16. Android应用自启动保活手段与安全现状分析
  17. python编程*三角形图形创意图片_使用python的pil制作微信九宫格图片
  18. hivesql失败告警发送到企业微信
  19. Cannot serialize; nested exception is org.springframework.core.serializer
  20. Java入门 18 3\25

热门文章

  1. 分布式系统领域有哪些经典论文
  2. 『网络安全宣传周 世平信息在参与』黑龙江站:“网”事知多少
  3. 院线电影《护国密探》即将与大家见面了
  4. 华为防火墙的负载均衡
  5. 内网穿透、seaFile、NAS私人云盘(一些原理和操作视频网址)
  6. Qt Debug 各种错误解决方法
  7. Linux的uvc的摄像头驱动,[OpenWrt Wiki] Linux下的摄像头驱动UVC
  8. 微信个人号多开定制SCRM客服系统开发教程
  9. phh7 安装redis扩展
  10. 《电工与电子技术》小结