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
转载于:https://www.cnblogs.com/mushou/p/9391942.html
Tomcat+nginx+keepalived+memcached实现双VIP负载均衡及Session会话保持相关推荐
- 负载均衡之session会话保持
session会话保持原理 1. 什么是会话保持? 会话保持是负载均衡最常见的问题之一,也是一个相对比较复杂的问题.会话保持有时候又叫做粘滞会话(Sticky Sessions).会话保持是指在负载均 ...
- nginx+tomcat+memcache实现负载均衡、session共享
实验架构图: Table of Contents 1.配置tomcat 2.安装memcache 3.查看tomcat和memcache是否配置好 4.nginx实现负载均衡: 5.客户端进行测试: ...
- nginx+tomcat+redis负载均衡及session共享
概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.o ...
- Nginx+Tomcat+Redis负载均衡实现Session共享
Nginx+Tomcat+Redis负载均衡实现Session共享 环境描述 tomcat1:192.168.194.100:18080 tomcat2:192.168.194.100:28080 N ...
- windows使用nginx+memcached实现负载均衡和session或者缓存共享
windows使用nginx+memcached实现负载均衡和session或者缓存共享 两台server server1:115.29.186.215 windows2008 64位操作系统 ser ...
- 用 Keepalived+HAProxy 实现高可用负载均衡的配置方法
1. 概述 软件负载均衡技术是指可以为多个后端服务器节点提供前端IP流量分发调度服务的软件技术.Keepalived和HAProxy是众多软负载技术中的两种,其中Keepalived既可以实现负载均衡 ...
- 用haproxy结合keepalived实现基于LNMP的负载均衡和高可用
今天我们讲haproxy结合keepalived实现LNMP的负载均衡和高可用,现在的公司大部分都基于haproxy实现负载均衡.下面以一个事例去给大家详细讲解如何去实现: 一.用haproxy结合k ...
- 千亿流量拦截控制处理技术-Nginx(安装 命令 路由匹配 负载均衡 常用配置)
千亿流量拦截控制处理技术-Nginx Nginx使用与配置 1 什么是nginx 1.1 可大量并行处理 1.2 与 Apache 相比 1.2.1 Apache VS Nginx 1.2.2 常用w ...
- Tomcat安装、配置、优化及负载均衡详解
博客园 首页 新随笔 联系 管理 订阅 随笔- 31 文章- 0 评论- 25 Tomcat安装.配置.优化及负载均衡详解 一.常见JavaWeb服务器 1.WebLogic:是BEA ...
最新文章
- VUE的组件DEMO
- QIIME 2用户文档. 16鉴定和过滤嵌合体序列q2-vsearch(2018.11)
- mysql千万级大数据SQL查询优化
- Linux fork()一个进程内核态的变化
- asp.net 页面从初始化到卸载事件顺序(及对页面控件调用)完整列表【转】
- springboot+shiro+redis项目整合
- springmvc报错 nested exception is org.mybatis.spring.MyBatisSystemException:
- .net httpwebrequest 并发慢_go语言并发之MPG模型
- pythongui界面小程序_python界面小程序
- 论文浅尝 | 融合多粒度信息和外部语言知识的中文关系抽取
- Android开发--apk的生成
- rust腐蚀 木制窗户怎么修_潜艇围壳上的窗户为什么不会裂开?
- mt管理器java_MT管理器
- 小工具二:报文比对工具
- 《只为遇见你》硬生生把爱情片拍成了把妹宝典,真人出镜演绎直男转型
- 安装QQ的时候显示创建文件夹失败,无法正常安装,请尝试选择新的安装目录的解决办法
- 4.什么是MESI缓存一致性协议?怎么解决并发的可见性问题?
- Swift内存布局以及HandyJSON
- 《逃出生天》:华语影视特效新视角
- 移动应用开发--实现微博界面(Andriod)
热门文章
- mysql optimize 作用_mysql optimize table
- 中求解数组中元素个数_JavaScript之学underscore在数组中查找指定元素
- 平均正确率aps apm apl_如何通过信号词来提高雅思听力正确率?| 附写作批改
- 电话号码的字母组合Python解法
- java code combat_极客战记怎么换成java_「网易官方」极客战记(codecombat)攻略-沙漠-脆弱的士气......
- java8和9兼容吗_甲骨文限制 Java 9 到 Java 8 的向后兼容性
- java 数字信封_GitHub - zhopen/eos-crypto-java: EOS 公钥加密,私钥解密。基于ECC+AES 实现的双向验证加解密。数字信封的 加解密。...
- 计算机网断IP修改,修改计算机名、IP
- vb6 combo根据index显示_彻底搞懂CSS层叠上下文、层叠等级、层叠顺序、z-index
- 机器学习中为什么需要梯度下降_梯度下降直觉 - 机器是如何学习的