1. 准备好tomcat

第一台

tar vxf apache-tomcat-7.0.54.tar.gz

mv apache-tomcat-7.0.54 /usr/local/tomcat

tar vxf jdk-7u65-linux-x64.tar.gz

mv jdk1.7.0_65/ /usr/local/java

编辑vim /etc/profile加

export JAVA_HOME=/usr/local/java       #设置java根目录

export PATH=$PATH:$JAVA_HOME/bin  #在PATH环境变量中添加java跟目录的bin子目录

启动tomcat服务

/usr/local/tomcat/bin/startup.sh

打开浏览器,ip:8080显示tomcat主页

关闭服务;

/usr/local/tomcat/bin/shutdown.sh

建立一个web 站点

cd webapps/

mkdir web

vim index.jsp

Server Info:

SessionID:<%=session.getId()%>

<br>

SessionIP:<%=request.getServerName()%>

<br>

SessionPort:<%=request.getServerPort()%>

<br>

<%

out.println("server one");

%>

修改Tomcat的server.xml文件

cp server.xml server.xml.bak

vim server.xml

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

<Context docBase="web" path="" reloadable="flase">

</Context>

</Host>

/usr/local/tomcat/bin/shutdown.sh

/usr/local/tomcat/bin/startup.sh

打开浏览器,ip:8080显示tomcat主页

第二台

与第一台基本一致,更改测试页的ip地址

scp root@172.16.1.2:/usr/local/tomcat/webapps/web/index.jsp .

scp root@172.16.1.2:/usr/local/tomcat/conf/server.xml  .

启动服务/usr/local/tomcat/bin/startup.sh

查看服务

netstat -anpult |grep java

浏览器访问测试 http://ip:8080

显示正常

2.准备nginx

第一台

源码安装nginx,

修改配置文件,配置负载均衡

cp /usr/local/nginx/conf/nginx.conf{,.bak}

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

加upstream tomcat_server {

server 172.16.1.12:8080 weight=1;

server 172.16.1.2:8080 weight=1;

}

proxy_pass http://tomcat_server;

语法检查

/usr/local/nginx/sbin/nginx –t

启动服务/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

或者killadd -1 nginx

打开浏览器访问: http://ip ,该ip为nginx 的ip,刷新浏览器,会显示两台

第二台

nginx-2服务器配置:

配置方式与服务器nginx-1一致

客户端测试:

打开浏览器访问: http://ip    #不断刷新可看到由于权重相同,页面会反复切换

3.安装配置keepalived

yum -y install keepalived

修改配置文件vim keepalived.conf

配置一个实例名字为VI_2,状态作为主,优先级100

vrrp_instance VI_2 {

#备用服务器上为 BACKUP

state MASTER

#绑定vip的网卡为ens33

interface ens33

virtual_router_id 51

#备用服务器上为90

nopreempt                                        #为不抢占模式

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

#track_script {

#nginx

#}

virtual_ipaddress {                               #配置虚拟ip地址

172.16.1.200

}

}

vrrp_instance VI_1 {                                  #配置另一个实例 VI_1,状态为 从,优先级为90

state BACKUP

interface ens33

virtual_router_id 51

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {                                  #配置虚拟ip地址为254

192.168.200.254

}

}

配置第二台

Vim keepalive.conf

vrrp_instance VI_2 {                                             #实例名字为VI_2,状态作为从,优先级90

#备用服务器上为 BACKUP

state SLAVE

#绑定vip的网卡为ens33

interface ens33

virtual_router_id 51

#备用服务器上为90

nopreempt

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

172.16.1.200                                                         #配置虚拟ip地址

}

}

vrrp_instance VI_1 {                                                          #配置另一个实例 VI_1,状态为主,优先级为100

state MASTER

interface ens33

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.200.254

}

}

测试,关闭一台keepalived,打开浏览器,刷新页面,两台机器网页交替更新,测试正常

实现高可用。

4.安装memcached,实现session会话保持。

yum -y install gcc openssl-devel pcre-devel zlib-devel

先安tar xf libevent-2.0.15-stable.tar.gz

cd libevent-2.0.15-stable

./configure --prefix=/usr/local/libevent && make && make install

再装memcached

tar xf memcached-1.4.5.tar.gz

cd memcached-1.4.5

./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/ && make && make install

配置

/usr/local/memcached/bin/memcached -u root -m 512M -n 10 -f 2 -d -vvv -c 512

vim /etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/libevent/lib/

Ldconfig

/usr/local/memcached/bin/memcached -u root -m 512M -n 10 -f 2 -d -vvv -c 512

netstat  -antp| grep :11211

显示端口开启

安装telnet测试yum -y install telnet

telnet 192.168.200.103 11211

显示正常

最后执行让Tomcat-1  Tomcat-2 通过(msm)连接到Memcached

将session包中的“*.jar复制到/usr/local/tomcat/lib/ 下面

cp session/* /usr/local/tomcat/lib/使tomcat支持memcached,

tomcat-1  和  tomcat-2   配置文件一模一样.

vim /usr/local/tomcat7/conf/context.xml

重启服务tomcat

/usr/local/tomcat/bin/shutdown.sh

/usr/local/tomcat/bin/startup.sh

如果成功,tomcat与Memcached 端口会连在一起,前后有变化

Tomcat-1与Tomcat-2如下图

netstat -antp|grep java

tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      62496/java

tcp        0      0 :::8009                     :::*                        LISTEN      62496/java

tcp        0      0 :::8080                     :::*                        LISTEN      62496/java

tcp        0      0 ::ffff:192.168.200.10:28232 ::ffff:192.168.200.10:11211 ESTABLISHED 62496/java

tcp        0      0 ::ffff:192.168.200.10:28231 ::ffff:192.168.200.10:11211 ESTABLISHED 62496/java

tcp        0      0 ::ffff:192.168.200.10:28230 ::ffff:192.168.200.10:11211 ESTABLISHED 62496/java

tcp        0      0 ::ffff:192.168.200.10:28228 ::ffff:192.168.200.10:11211 ESTABLISHED 62496/java

tcp        0      0 ::ffff:192.168.200.10:28229 ::ffff:192.168.200.10:11211 ESTABLISHED 62496/java

[root@tomcat-1 ~]# netstat -antp|grep memcached

tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      62402/memcached

tcp        0      0 192.168.200.103:11211       192.168.200.103:28230       ESTABLISHED 62402/memcached

tcp       45      0 192.168.200.103:11211       192.168.200.103:28228       ESTABLISHED 62402/memcached

tcp        0      0 192.168.200.103:11211       192.168.200.103:28232       ESTABLISHED 62402/memcached

tcp        0      0 192.168.200.103:11211       192.168.200.103:28229       ESTABLISHED 62402/memcached

tcp        0      0 192.168.200.103:11211       192.168.200.103:28231       ESTABLISHED 62402/memcached

tcp        0      0 :::11211                    :::*                        LISTEN      62402/memcached

Tomcat+nginx+keepalived+memcached实现双VIP负载均衡及Session会话保持的更多相关文章

  1. nginx+keepalived+tomcat+memcache实现双VIP高可用及Session会话保持

    Nginx+Keepalived+Tomcat+Memcached 实现双VIP负载均衡及Session会话保持 IP 信息列表: 名称         IP                      ...

  2. Nginx + Keepalived实现应用高可用负载均衡功能

    说明:此处仅介绍 Keepalived 实现nginx负载均衡器的高可用,关于nginx介绍和负载均衡实现可查看我的另两篇博文 Nginx负载均衡 和 Nginx配置了解 应用背景:实现高可用,避免单 ...

  3. 用NginX+keepalived实现高可用的负载均衡

    Table of Contents 1 规划和准备 2 安装 3 配置 3.1 配置NginX 3.2 配置keepalived 3.3 让keepalived监控NginX的状态 4 还可以做什么 ...

  4. Keepalived+Nginx实现高可用和双主节点负载均衡

    简介 Nginx可以实现高并发反向代理,lvs集群可以实现负载均衡,但是他们都有一个共同的弊端,就是Nginx,lvs架构中Director是单点故障,有没有一个好的方案解决这个问题呢?答案是有.通过 ...

  5. keepalived+nginx+tomcat+redis实现负载均衡和session共享(原创)

    keepalived+nginx+tomcat+redis实现负载均衡和session共享 直接上链接,码了一天,就不再重写了,希望能帮到大家,有问题欢迎留言交流.

  6. Nginx+Tomcat8+Memcached实现负载均衡及session共享

    1> 基础环境 简易拓扑图: 2> 部署Tomcat [root@node01 ~]# ll -h ~ |egrep 'jdk|tomcat'-rw-r--r-- 1 root root ...

  7. Nginx+keepalived(高可用双主模式)

    Nginx+keepalived(高可用双主模式) tips:前面已经介绍了nginx+keepalived高可用主从模式,今天补充下高可用的双主模式,均可以作为主机使用 server1:192.16 ...

  8. 通过Nginx+tomcat+redis实现反向代理 、负载均衡及session同步

    一直对于负载均衡比较陌生,今天尝试着去了解了一下,并做了一个小的实验,对于这个概念有一些认识,在此做一个简单的总结 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称 ...

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

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

随机推荐

  1. Android学习——Fragment动态加载

    动态加载原理 利用FragmentManager来添加一套Fragment事务,最后通过commit提交该事务来执行对Fragment的相关操作. FragmentManager fragmentma ...

  2. 虚拟机配置静态 IP 以后无法连接的解决办法

    问题描述 将虚拟机内部 IP 地址从动态获取改成静态 IP 以后,远程连接失败. 问题分析 Azure 虚拟机的内部 IP 默认为动态分配, 由 DHCP 服务自动分配, 在虚拟机的生命周期内, 该 ...

  3. Orchard Core 文档翻译 (三) Orchard Core Modules

    原文连接:https://www.cnblogs.com/Qbit/p/9746442.html 转载请注明出处 介绍 Orchard Core Modules库提供了一种机制,可以拥有一个独立的模块 ...

  4. June 17th 2017 Week 24th Saturday

    Absence sharpens love, presence strengthens it. 相聚爱益切,离别情更深. There is almost no such love that can i ...

  5. python:协程

    1,如何实现在两个函数之间的切换? def func1(): print(l) yield print(3) yield def func2(): g =func1() next(g) print(2 ...

  6. Gym 101308I Inspection

    题意: 用最少的路径,覆盖掉所有的边,(点可以重复): 不是用最小路径覆盖,最小路径覆盖是覆盖点: 分析: 建图:入度<出度,说明这是个起点,从这里出发,入度>出度,说明从这里结束: 先找 ...

  7. HDU 3625 第一类斯特林数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3625 题意: n个房间,房间里面放着钥匙,允许破门而入k个,拿到房间里面的钥匙后可以打开对应的门,但是 ...

  8. [19/03/23-星期六] 容器_ 泛型Generics

    一.概念 生活中的容器不难理解,是用来容纳物体的,程序中的“容器”也有类似的功能,就是用来容纳和管理数据. 数组就是一种容器,可以在其中放置对象或基本类型数据. ---优势:是一种简单的线性序列,可以 ...

  9. Very Deep Convolutional Networks for Large-scale Image Recognition(vggnet)

    vggNet是从AlexNet而来,主要探索卷积神经网络的深度与性能之间的关系,通过反复堆叠3x3的卷积核(c中有1x1的卷积核,也只有c中有,c是16层)和2x2的最大池化层,vggNet构筑了16 ...

  10. Android学习笔记_28_手势识别

    一.准备手势库: 使用SDK自带例子GestureBuilder建立手势库(位置:android-sdk-windows\samples\android-10\GestureBuilder).使用Ge ...