Keepalived+Nginx+tomcat实现系统的高可用

1:安装vmware虚拟机

2:安装linux系统,我自己下载的centos6.5

3:安装JDK,tomcat

解压tomcat到/usr/local

配置tomcat的首页

vim /usr/local/apache-tomcat-7.0.84/webapps/ROOT/index.jsp

配置防火墙

vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

启动tomcat

/usr/local/apache-tomcat-7.0.84/bin/startup.sh

4:安装nginx的依赖包和nginx

4.1:安装依赖pcre包

cd /usr/local/src

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz

tar -zxvf pcre-8.37.tar.gz

cd pcre-8.34

./configure&&make&&make install

4.2:安装依赖zlib包

cd /usr/local/src

wget http://zlib.net/zlib-1.2.11.tar.gz

tar -zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure&&make&&make install

4.3:安装依赖openssl包

cd /usr/local/src

wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz

tar -zxvf openssl-1.0.1t.tar.gz

./config --prefix=/usr/local/openssl && make && make install

4.4:nginx安装(以上三个依赖安装完后)

cd /usr/local

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

或curl -O http://nginx.org/download/nginx-1.9.0.tar.gz .   下载

tar -zxvf nginx-1.9.0.tar.gz

cd nginx-1.9.0

./configure && make && make install

#相当于 先执行./configure  再执行make 最后执行make install

配置nginx反向代理两个tomcat服务器

vim /usr/local/nginx/conf/nginx.conf

1)配置location和里面的proxy_pass

2)配置upstream

3)将配置文件发送到另外一个nginx服务器上去,使用scp命令

scp /usr/local/nginx/conf/nginx.conf root@192.168.182.129:/usr/local/nginx/conf/

启动/usr/local/nginx/sbin/nginx

重启nginx的命令/usr/local/nginx/sbin/nginx -s reload

nginx的访问日志

tail -f /usr/local/nginx/logs/access.log

5:安装keepalived

下载地址:https://pan.baidu.com/s/1G7sLL-YkZGSMu8G76yz1Rw 密码:adbw

./configure --prefix=/data/program/keepalived --sysconf=/etc

make && make install

或者通过yum安装keepalived

yum install keepalived -y

1)编辑keepalived配置文件

vim /etc/keepalived/keepalived.conf

--------------------------------------------------------------------------------------------------------

vrrp_instance VI_1 {

state MASTER    # 配置为主MASTER为主,BACKUP为备

interface eno16777736    # 设置网卡

virtual_router_id 51    # 虚拟路由ID,全局唯一

priority 100        # 优先级,权重值

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.10.10.50        # VIP地址

}

}

---------------------------------------------------------------------------------------------------------

2)配置防火墙让keepalived可以组播进行心跳检测

centos 6下面修改防火墙
vi /etc/sysconfig/iptables

-A INPUT -p vrrp -d 192.168.182.128 -j ACCEPT
-A INPUT -p vrrp -d 192.168.182.129 -j ACCEPT

-A INPUT -p 112 -d 192.168.182.128 -j ACCEPT
-A INPUT -p 112 -d 192.168.182.129 -j ACCEPT

注意很多网上的会加上-i参数,-i表示你的网卡,比如-i eth0表示eth0这个网卡

#-p 112指定协议为112,也可-p vrrp即vrrp

centos7下面改防火墙
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface enp4s0 --destination 192.168.182.128 --protocol vrrp -j ACCEPT
firewall-cmd --reload

启动keepalived

/etc/init.d/keepalived  start

重启

/etc/init.d/keepalived restart

关闭keepalived

/etc/init.d/keepalived  stop

查看keepalived的运行日志

tail -f /var/log/messages

查看keepalived进程

ps aux|grep keepalived

6:配置vmware模拟公网环境

7:nginx+keepalive实现高可用的不足

nginx支持大概每秒1万的并发,如果超过1万的并发的,就需要使用其他的方式来实现高可用了,比如:

LVS+Keepalived+Nginx

F5+Nginx

附录1

Vim复制一整行和复制多行

1、复制

1)单行复制

在命令模式下,将光标移动到将要复制的行处,按“yy”进行复制;

2)多行复制 在命令模式下,将光标移动到将要复制的首行处,按“nyy”复制n行;其中n为1、2、3……

2、粘贴

在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴

dd表示删除一行

u   撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作

vim跳到页首gg,跳到页尾G

跳到行首0,调到行尾$

附录2

重启防火墙

/etc/init.d/iptables restart

查看网卡上的ip地址

ip a show eth0

ip a show eth1

配置selinux

vim /etc/selinux/config

SELINUX=disabled #将该配置改为disabled,保存退出后reboot

Keepalived+Nginx+tomcat实现系统的高可用的更多相关文章

  1. LVS + Keepalived + Nginx基于DR模式构建高可用方案

    在大型网站中一般服务端会做集群,同时利用负载均衡器做负载均衡.这样有利于将大量的请求分散到各个服务器上,提升网站的响应速度.当然为了解决单点故障的问题,还会做热备份方案.这里演示利用LVS做负载均衡器 ...

  2. 高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高可用热备

    在上一篇 分布式文件系统FastDFS如何做到高可用 中已经介绍了FastDFS的原理和怎么搭建一个简单的高可用的分布式文件系统及怎么访问. 高可用是实现了,但由于我们只设置了一个group,如果现在 ...

  3. keepalived+nginx负载均衡+ApacheWeb实现高可用

    1.Keepalived高可用软件 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,kee ...

  4. Keepalived+Nginx+Tomcat配置高可用负载均衡系统示例

    前言 此示例为keepalived+nginx+tomcat的基础配置示例,某些特定配置此例中不会出现,在示例中会用到三个虚拟机:两个纯命令行用于模拟服务端配置,一个带桌面环境的用于模拟客户端访问,这 ...

  5. 搭建 Keepalived + Nginx + Tomcat 的高可用负载均衡架构

    1 概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已无法承载现有的业务量 ...

  6. [转]搭建Keepalived+Nginx+Tomcat高可用负载均衡架构

    [原文]https://www.toutiao.com/i6591714650205716996/ 一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最 ...

  7. 搭建Keepalived + Nginx + Tomcat的高可用负载均衡架构

    1 概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已无法承载现有的业务量 ...

  8. Keepalived + Nginx + Tomcat 的高可用负载均衡架构搭建

    Keepalived + Nginx + Tomcat 的高可用负载均衡架构搭建 Nginx 是一个高性能的 HTTP反向代理服务器 Keepalived 是一个基于VRRP协议来实现的LVS服务高可 ...

  9. Keepalived + Nginx + Tomcat 高可用负载均衡架构

    环境: 1.centos7.3 2.虚拟ip:192.168.217.200 3.192.168.217.11.192.168.217.12上分别部署Nginx Keepalived Tomcat并进 ...

随机推荐

  1. initrd in linux 2.6.32.27

    2.6.32.27可以不指定initrd选项 如果指定initrd选项,则自动调用initrd内的linuxrc或init进行一切必要的初始化.Kernel启动参数全部会作为变量传递给这两个脚本.如r ...

  2. showdoc 开源在线api&&技术文档管理工具

    showdoc 是一个很不错的api 以及技术文档管理工具 环境准备 doker-copose 文件 version: "3" services: doc: image: regi ...

  3. vorpal 又一个方便的cli 开发包

    vorpal 是一个npm 包,我们可以用来开发专业的cli 程序 简单使用 初始化项目 yarn init -y 添加依赖 yarn add vorpal 简单demo app.js // cons ...

  4. Thread与ThreadPool的内存之战

    Thread与ThreadPool使用的时候在内存里对象是如何分布的呢? 今天我们就从内存堆的角度分析下两者. 先上小白鼠代码: static void Main(string[] args)     ...

  5. msyql多个or,and,

    where (`to`= 2 and `from`= 8) or (`to`= 8 and `from`= 2) and from_unixtime(a.time,'%Y-%m-%d') ='2017 ...

  6. python datetime学习

    Python中处理时间的模块datetime, 这个模块里包含的类也叫datetime,所以要使用需要先import from datetime import datetime 获取当前日期和时间 d ...

  7. [转]RPC 框架通俗介绍

    关于RPC 你的题目是RPC(远程过程调用,Remote Procedure Call)框架,首先了解什么叫RPC,为什么要RPC,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服 ...

  8. dva 知识点

    dva中,路由模式从hashHistory换成 browserHistory: dva-cli创建的项目中,src/index.js相应部分修改如下: import browserHistory fr ...

  9. 三种方法获取Class对象的区别

    有关反射的内容见 java反射 得到某个类的Class对象有三种方法: 使用“类名.class”取得 Class.forName(String className) 通过该类实例对象的getClass ...

  10. Php文件上传类class.upload.php

    简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮助你快速的给自己的网站集成上传文件功能.不仅如此,此分类还有一些列的处理功能,可以对上传的文件或者本地的文件进行处 ...