【Linux学习十】负载均衡带来tomcat的session不一致问题
环境
虚拟机:VMware 10
Linux版本:CentOS-6.5-x86_64
客户端:Xshell4
FTP:Xftp4
tomcat7
jdk7
session不一致是指web服务器(tomcat等)出现的问题,所以需要针对web容器进行解决。
网络架构如下:

注意关闭11-13的防火墙:service iptables stop
一、使用内存数据库来缓存session
可以使用memcached或者redis
1、192.168.230.11安装memcached
(1)安装memcached
yum install memcached -y
(2)启动memcached
memcached -d -m 128m -p 11211 -l 192.168.230.11 -u root -P /tmp/
-d:后台启动服务
-m:缓存大小
-p:端口
-l:IP
-u:使用那个用户作为管理用户
-P:服务启动后进程文件存放目录
2、配置nginx
worker_processes ;
events {
worker_connections ;
} http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
access_log logs/access.log main;
sendfile on;
keepalive_timeout ; upstream tom {
server 192.168.230.12:8080;
server 192.168.230.13:8080;
}
server {
listen ;
server_name www.wjy.com;
location / {
root html;
index index.html index.htm;
} location /cat {
proxy_pass http://tom/;
} error_page /50x.html;
location = /50x.html {
root html;
}
}
}
3、192.168.230.12、192.168.230.13配置tomcat
(1)修改tomcat下的context.xml(/usr/local/software/apache-tomcat-7.0.61/conf/context.xml)
在<Context></Context> 里最后面加上下面
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.230.11:11211"
sticky="false"
lockingMode="auto"
sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupTimeout="1000"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />
(2)修改index.jsp(/usr/local/apache-tomcat-7.0.61/webapps/ROOT/index.jsp)
192.168.230.12:
from 192.168.230.12
<br/>
SessionId:<%=session.getid()%>
192.168.230.13:
from 192.168.230.13
<br/>
SessionId:<%=session.getid()%>
(3)上传memcached依赖jar(/usr/local/apache-tomcat-7.0.61/lib)

资源链接:
https://download.csdn.net/download/cac2020/10884650
二、tomcat所在集群节点时间必须一致
使用date "+%Y-%m-%d %H:%M:%S"来检查,时间相差很大仍然新生成session
[root@node1 sbin]# date "+%Y-%m-%d %H:%M:%S"
-- ::
[root@node1 sbin]# date -s "2018-12-28 16:49:00"
Fri Dec :: CST
[root@node1 sbin]# date "+%Y-%m-%d %H:%M:%S"
-- ::
验证:


参考:
memcached:
https://blog.csdn.net/qq_24829007/article/details/79393543
https://www.cnblogs.com/interdrp/p/4096466.html
https://blog.csdn.net/a857553315/article/details/80384365
redis:
https://blog.csdn.net/lajigao/article/details/79645057
https://blog.csdn.net/Jack__iT/article/details/80640941
https://github.com/jcoleman/tomcat-redis-session-manager
【Linux学习十】负载均衡带来tomcat的session不一致问题的更多相关文章
- redis/分布式文件存储系统/数据库 存储session,解决负载均衡集群中session不一致问题
先来说下session和cookie的异同 session和cookie不仅仅是一个存放在服务器端,一个存放在客户端那么笼统 session虽然存放在服务器端,但是也需要和客户端相互匹配,试想一个浏览 ...
- Linux系统搭建负载均衡环境
1:负载均衡的定义多台服务器组成一个集群,向外提供相同的服务,所有的请求经过apache服务器的分配,到各台tomcat服务器处理请求.另外还需实现session共享,如果有一台tomcat服务器宕机 ...
- tomcat集群和负载均衡的实现(session同步)
(一)环境说明 (1)服务器有4台,一台安装apache,三台安装tomcat (2)apache2.0.55.tomcat5.5.15.jk2.0.4.jdk1.5.6或jdk1.4.2 (3) ...
- apache、mod_jk负载均衡与tomcat集群
最近需要搭建apache和tomcat的集群,实现静态网站直接通过apache访问,动态网站转交给tomcat处理,实现负载均衡和tomcat集群配置. apache安装 wget http://ap ...
- nginx做负载均衡和tomcat简单集群
Nginx做负载均衡和TOMCAT简单集群 1.下载安装nginx及其依赖包 ...
- LINUX内核CPU负载均衡机制【转】
转自:http://oenhan.com/cpu-load-balance 还是神奇的进程调度问题引发的,参看Linux进程组调度机制分析,组调度机制是看清楚了,发现在重启过程中,很多内核调用栈阻塞在 ...
- Linux中级之负载均衡(lvs,nginx,haproxy)、中间件
一.负载均衡的概念 1.系统的扩展方式: scale up:向上扩展 scale out:向外扩展 2.集群类型: LB(Load Balancing).HA(high availability) ...
- nginx负载均衡基于ip_hash的session粘帖
nginx负载均衡基于ip_hash的session粘帖 nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除 ...
- Apache负载均衡与Tomcat集群配置学习(Windows环境)
本文主要参考自http://www.iteye.com/topic/985404?dhcc,经由实际操作配置操并记录而成. 由于最近的一个Java开发项目用到了Tomcat中间件作为web服务器,刚开 ...
随机推荐
- PyChram快捷键
- 关于安装SVN Service 出错 Service 'VisualSVN Server' failed to start. Please check VisualSVN Server log in Event Viewer for more details
关于安装SVN Service 出错 Service 'VisualSVN Server' failed to start. Please check VisualSVN Server log in ...
- 如何处理浏览器缓存 加t
- wx事件处理二
wxPython首先在触发对象中查找匹配事件类型的被绑定的处理器函数,如果找到,刚相应方法被执行.如果没找到,wxPython将检查该事件是否传送到了上一级的容器,如果是,父窗口被检查,如此一级级向上 ...
- 设置td中的table置顶
style="vertical-align: top" <td colspan="11" rowspan="5" style=&quo ...
- java 根据word xml模板生成word
这里用的是poi相关jar包以及freemarker插值技术实现,poi相关jar包这里不再述说 1,编辑word并保存为xml 2,把xml后缀改为ftl文件 3,前端代码 // alert(jso ...
- Java中的枚举Enum
public class TestEnum { /*最普通的枚举*/ public enum ColorSelect { red, green, yellow, blue; } /* 枚举也可以象一般 ...
- vue 动态绑定背景图片
html <div class="racetm" :style="{backgroundImage: 'url(' + (coverImgUrl ? coverIm ...
- 小程 序swiper自适应宽高
https://blog.csdn.net/qq_31604363/article/details/73715944 小程 序swiper自适应宽高 小程 序swiper自适应宽高
- Nginx Log日志统计分析常用命令
IP相关统计 统计IP访问量(独立ip访问数量) awk '{print $1}' access.log | sort -n | uniq | wc -l 查看某一时间段的IP访问量(4-5点) gr ...