Tomcat+nginx+keepalived+memcached实现双VIP负载均衡及Session会话保持
- 准备好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会话保持的更多相关文章
- nginx+keepalived+tomcat+memcache实现双VIP高可用及Session会话保持
Nginx+Keepalived+Tomcat+Memcached 实现双VIP负载均衡及Session会话保持 IP 信息列表: 名称 IP ...
- Nginx + Keepalived实现应用高可用负载均衡功能
说明:此处仅介绍 Keepalived 实现nginx负载均衡器的高可用,关于nginx介绍和负载均衡实现可查看我的另两篇博文 Nginx负载均衡 和 Nginx配置了解 应用背景:实现高可用,避免单 ...
- 用NginX+keepalived实现高可用的负载均衡
Table of Contents 1 规划和准备 2 安装 3 配置 3.1 配置NginX 3.2 配置keepalived 3.3 让keepalived监控NginX的状态 4 还可以做什么 ...
- Keepalived+Nginx实现高可用和双主节点负载均衡
简介 Nginx可以实现高并发反向代理,lvs集群可以实现负载均衡,但是他们都有一个共同的弊端,就是Nginx,lvs架构中Director是单点故障,有没有一个好的方案解决这个问题呢?答案是有.通过 ...
- keepalived+nginx+tomcat+redis实现负载均衡和session共享(原创)
keepalived+nginx+tomcat+redis实现负载均衡和session共享 直接上链接,码了一天,就不再重写了,希望能帮到大家,有问题欢迎留言交流.
- Nginx+Tomcat8+Memcached实现负载均衡及session共享
1> 基础环境 简易拓扑图: 2> 部署Tomcat [root@node01 ~]# ll -h ~ |egrep 'jdk|tomcat'-rw-r--r-- 1 root root ...
- Nginx+keepalived(高可用双主模式)
Nginx+keepalived(高可用双主模式) tips:前面已经介绍了nginx+keepalived高可用主从模式,今天补充下高可用的双主模式,均可以作为主机使用 server1:192.16 ...
- 通过Nginx+tomcat+redis实现反向代理 、负载均衡及session同步
一直对于负载均衡比较陌生,今天尝试着去了解了一下,并做了一个小的实验,对于这个概念有一些认识,在此做一个简单的总结 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称 ...
- nginx+tomcat+redis负载均衡及session共享
概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.o ...
随机推荐
- GridView——标题行自适应单元格列宽与选中单元格变色
首先看效果图: 主要实现—— 1.前台GridView代码: <asp:GridView Height="100%" Width="98%" ID=&qu ...
- SQL Server ->> 重命名数据库
ALTER DATABASE [oldDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO ALTER DATABASE [oldDB] MODIFY NAME ...
- Windows装系统
这几天电脑频繁崩溃,自己尝试着装了几次系统,遇到一些问题.有的解决了,有的没解决.将其一一记录在这里,作为经验参考. 自己以前最常用的方式是直接通过ultraiso将IOS文件解压到到U盘,会将U盘做 ...
- 《O2O实战:二维码全渠道营销》读书笔记思维导图(530KB)
- 【LaTeX】E喵的LaTeX新手入门教程(3)
[LaTeX]E喵的LaTeX新手入门教程(3) 数学公式作者: 郭英东.sty 昨天熄灯了真是坑爹.前情回顾 [LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新 ...
- NO.010-2018.02.15《上邪》两汉:佚名
上邪_古诗文网 上邪 两汉:佚名 上邪,我欲与君相知,长命无绝衰.上天呀!我渴望与你相知相惜,长存此心永不褪减.上邪(yé)!:天啊!.上,指天.邪,语气助词,表示感叹. 相知:相爱.命:古与“令”字 ...
- 设置IE浏览器的默认下载路径
实现效果: 知识运用: Default Download Directory键 实现代码: private void button2_Click(object sender, EventArgs e) ...
- 【luoguP1563】【2016NOIP-High】玩具迷题
P1563 玩具谜题 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: ...
- JavaScript js调用堆栈(三)
本文主要深入介绍JavaScript内存机制 内存模型 JS内存空间分为栈(stack),堆(heap),池(一般也会归类为栈中),其中栈存放变量,堆存放复杂对象,池存放常量. 注:闭包中的变量并不保 ...
- 课时60.CSS的固定格式(掌握)
CSS就是用来设置样式的,美化界面的 如何验证? 打开一个京东首页 删除掉css样式 发现页面变得非常难看 由此我们验证了一个说法,css就是用来美化界面的 1.格式: <style type= ...