tomcat8+memcached session共享
一、环境准备
时间同步(同步后确认各服务器时间是否一致,不一致需要修改一下时区)
关闭防火墙
软件包和jar包链接:https://pan.baidu.com/s/1sl9Nob7
二、安装配置nginx和memcached
Nginx和memcached使用yum安装即可,下面是nginx配置文件内容
user 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" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
sendfile on;
tcp_nopush on;
keepalive_timeout ;
gzip on;
upstream tomcat-web {
server 192.168.0.14:;
server 192.168.0.15:;
}
server {
listen ;
server_name www.tomcat.com; location / {
root html;
index index.html index.htm index.jsp;
}
location ~* \.(jsp|do)$ {
proxy_pass http://tomcat-web;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
location /nginx_status {
stub_status on;
access_log off;
allow 192.168.0.0/;
deny all;
}
error_page /50x.html;
location = /50x.html {
root html;
}
}
}
nginx.conf
分别启动nginx和memcached
三、安装配置tomcat
安装步骤忽略
下载jar包至各tomcat节点的tomcat安装目录下的lib目录中
分别在两个tomcat上的某host上定义一个用于测试的context容器,并在其中创建一个会话管理器,如下所示:
[root@tomcat-server- ~]# vim /usr/local/tomcat/conf/server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="/usr/local/tomcat/webapps/test" reloadable="true">
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.0.12:11211,n2:192.168.0.13:11211" #n1代表memcached的名称,后面为具体的ip地址
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
/>
</Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" /> </Host>
提供测试页面
tomcat-server-1
[root@tomcat-server- lib]# mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}
[root@tomcat-server- lib]# vim /usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" %>
<html>
<head><title>TomcatA</title></head>
<body>
<h1><font color="red">TomcatA</font></h1>
<table align="centre" border="">
<tr>
<td>Session ID</td>
<% session.setAttribute("tomcat","tomcat"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
tomcat-server-2
[root@tomcat-server- lib]# mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}
[root@tomcat-server- lib]# vim /usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" %>
<html>
<head><title>TomcatB</title></head>
<body>
<h1><font color="blue">TomcatB</font></h1>
<table align="centre" border="">
<tr>
<td>Session ID</td>
<% session.setAttribute("tomcat","tomcat"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
重启两台tomcat,并用浏览器进行访问
测试结果,在浏览器中访问http://www.tomcat.com/test/index.jsp,结果如上所示,其session ID在负载均衡环境中保持不变。
tomcat8+memcached session共享的更多相关文章
- tomcat8的session共享实现方案
tomcat8的session共享实现 下载tomcat 版本:apache-tomcat-8.0.53.zip 实现步骤,只需要两步 两个tomcat的server.xml都增加一样cluster配 ...
- linux memcached Session共享
memcached memcached是高性能的分布式缓存服务器用来集中缓存数据库查询结果,减少数据库访问次数提高动态web应用的响应速度 传统web架构的问题许多web应用都将数据保存在RDBMS中 ...
- Nginx+Tomat8负载后,利用Redis实现Tomcat8的session共享
网上相应的文章应该都介绍,这里只特别记录下笔者在实操的过程出现的问题.此文件只针对tomcat 8 版本,之前版本可略过. tomcat 8 中的context.xml文件修改,增加以下配置. Jav ...
- memcached session共享
http://www.baidu.com/s?wd=memcached%20session%E5%85%B1%E4%BA%AB&rsv_spt=1&issp=1&f=8& ...
- Nginx+Tomcat8+Memcached实现负载均衡及session共享
1> 基础环境 简易拓扑图: 2> 部署Tomcat [root@node01 ~]# ll -h ~ |egrep 'jdk|tomcat'-rw-r--r-- 1 root root ...
- Tomcat通过Memcached实现session共享的完整部署记录
对于web应用集群的技术实现而言,最大的难点就是:如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点, 大体上有两种方式:一种是把所有Ses ...
- 项目分布式部署那些事(2):基于OCS(Memcached)的Session共享方案
在不久之前发布了一篇"项目分布式部署那些事(1):ONS消息队列.基于Redis的Session共享,开源共享",因为一些问题我们使用了阿里云的OCS,下面就来简单的介绍和分享下相 ...
- 【转】Nginx+Tomcat+Memcached集群Session共享
cookie是怎样工作的? 例 如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名 是“Michael J ...
- Nginx+Tomcat+memcached负载均衡实现session共享
http://blog.csdn.net/love_ubuntu/article/details/8464983 1. 安装各个软件不用说了. 2. 到tomcat的安装目录lib中,加入: me ...
随机推荐
- Vision GUI programming products
Matrox Design Assistant Tutorial https://www.youtube.com/watch?v=QnE5heA_yWQ merlic https://www.yout ...
- redis 的 docker 镜像使用
redis 镜像使用: 创建容器(暴露端口:6379,使用 Redis 可视化界面工具(如:Fastoredis)连接 redis 时连接该端口): docker run -it -p 6379:63 ...
- Kubernetes 架构图
Kubernetes 架构图: Pod K8S中最基础的调度单位是Pod,它有网络,有存储.Pod里面运行着一个或者若干个docker容器.同一个Pod里的容器共享同一个网络命名空间,可以使用loca ...
- hive 安装 和基本使用
hive是什么: hive是一个数据仓库,hive不是一个数据库,hive 不没有自己的数据,hive的数据存在hdfs 中,hive 依赖一个关系型数据库来存储 自己在 hdfs 中的数据的映射关系 ...
- MD5 SHA1 SHA256 SHA512 SHA1WithRSA 的区别
MD5 SHA1 SHA256 SHA512 这4种本质都是摘要函数,不通在于长度 MD5 是 128 位,SHA1 是 160 位 ,SHA256 是 256 位,SHA512 是512 位. ...
- java byte数组与String的相互转换
String -> byte数组 String str = "abc天"; byte[] btr = str.getBytes(); System.out.printl ...
- VS2013 未找到与约束。。。
新建项目或打开项目时,VS2013 未找到与约束...问题: 解决方案:控制面板>程序>程序和功能 找到如下选中软件右击修复 即可(修复前需关闭VS2013)
- windbg条件断点总结
1 . 条件断点是断点命令 ( bp 或者 bu ) 与j命令或者.if命令一起使用的,后面跟着一个gc命令 0:000> bp Address "j (Condition) 'O ...
- Hystrix 使用入门
在很多系统架构中都需要考虑横向扩.单点故障等问题,对于一个庞大的应用集群,部分服务或者机器出现问题不可避免,在出现故障时,如何减少故障的影响.保障集群的高可用,成为一个重要的工作,Hystrix 是一 ...
- 性能优化之永恒之道(实时sql优化vs业务字段冗余vs离线计算)
在项目中,随着时间的推移,数据量越来越大,程序的某些功能性能也可能会随之下降,那么此时我们不得不需要对之前的功能进行性能优化.如果优化方案不得当,或者说不优雅,那可能将对整个系统产生不可逆的严重影响. ...