java web session共享
一 搭建环境
操作系统:windows 7 64位
http server:nginx 1.9.7
缓存系统:memcached
Servlet容器:apache-tomcat-7.0.65
二 搭建步骤
1.为了方便测试,将tomcat复制为两份,避免tomcat端口号冲突,修改tomcat\conf\server.xml 端口号。
2.在两个tomcat\webapps下建立文件夹,并新建一个jsp文件,文件内容为<%=session.getId()%> 为了区别跳转的路径可以在内容中追加编号,例如tomcat1、tomcat2。
3.启动两个tomcat并访问 http://localhost:port/<新建的文件夹>/<jsp文件>。此时两个tomcat是独立运行的。我们需要配置nginx将两个tomcat集成起来。
4.修改ngxig\conf\nginx.conf配置文件
upstream test{
server ip:port;
server ip:port;
}
server {
listen 80;
server_name ip;
#charset koi8-r;
#access_log logs/host.access.log main;
location /test{
root jsp;
index login.jsp;
proxy_pass http://test; (test为upstream配置的别名)
}
5.通过cmd命令行工具进入nginx使用命令 nginx启动。
Ps:ngxin常用命令:启动 nginx,停止 ngxin -s stop,重启nginx -s reload,如果发现命令无效,可以打开任务管理器将nginx进程结束掉再执行启动命令。
6.按照上面给出的例子通过浏览器访问 http://localhot/<文件夹>/<jsp文件>就能访问jsp页面。按F5刷新可以看到请求页面是在两个jsp页面切换,sessionId不断的更换。
7.停止tomcat,将下载好的memcached相关的jar包放到tomcat\lib下
Ps:这里要注意tomcat和jar包的版本,可以去google code上去查看,针对tomcat 7 的jar包已上传至 \\192.168.0.212\SoftBank\jar\memcached 中。
8.解压memcached,使用cmd命令进入该目录,执行 memcached -d install命令,安装好后,使用memcached -d start启动memcached服务。
9.修改tomcat\conf\context.xm文件,将以下内容天下到<context></context>标签内。
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:ip:port" requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$"
sessionBackupAsync="false"
sessionBackupTimeout="100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false"/>
添加好后,修改IP和端口。
10.启动tomcat,访问nginx配置的路径,http://localhot/<文件夹>/<jsp文件> 此时再按F5刷新页面会看到无论访问哪个页面sessionID都是一致的。
java web session共享的更多相关文章
- java web Session会话技术(原理图解+功能+与Cookie的区别+基本使用)
java web Session会话技术(原理图解+功能+与Cookie的区别+基本使用) 这是我关于会话技术的第二篇文章,对 Cookie有不了解的兄弟可以点击下方的Cookie跳转 Cookie链 ...
- Java Web Session设置
一.前言 在做 java web项目时,我们很多时候都要用到 Session,那么我就简单的写一下 Session 的写法. 二.代码实现 Servlet Session 的设置 package co ...
- java web session过期 跳转页面没有跳出frame的问题
对于frame页面框架的java web项目,如果session过期执行跳转操作时,只在一个frame中(例如center frame)跳转到设置的login页面了,为了能直接跳转到最初的登录页面,就 ...
- java web session监听销毁跳转
1.了解如何使用HttpSessionListener监听session的销毁. 2.了解如何使用HttpSessionBindingListener监听session的销毁. 一. 使用HttpSe ...
- 聊聊从web session的共享到可扩展缓存设计
先从web session的共享说起 许多系统需要提供7*24小时服务,这类系统肯定需要考虑灾备问题,单台服务器如果宕机可能无法立马恢复使用,这必定影响到服务.这个问题对于系统规模来说,从小到大可 ...
- 多台web如何共享session进行存储(转载)
session的存储了解以前是怎么做的,搞清楚了来龙去脉,才会明白进行共享背后的思想和出发点.我喜欢按照这样的方式来问(或者去搞清楚):为什么要session要进行共享,不共享会什么问题呢? php中 ...
- 基于nginx tomcat redis分布式web应用的session共享配置
一.前言 nginx 作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存.web server负载均衡等功能,由于其轻量级.高性能.高可靠等特点在互联网项目中有着非常普遍的应用,相关 ...
- nginx redis tomcat 分布式web应用 session共享
目标:多台tomcat 使用redis实现共享session.redis的安装请参阅:centos上安装redis nginx 作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存.w ...
- java项目使用memcache实现session共享+session基础
本文章主要目的是配置session共享,为了巩固基础,捎带介绍了一些基础知识(网上搜索后觉得最全面的特引过来,节省时间),基础扎实的可以自动忽略. 基础篇: 1.了解java web中的session ...
随机推荐
- 从OLLVM4.0.0升级到LLVM8.0.1,并且给LLVM增加Pass 插件系统
版本太低了,用得我这个揪心. 上周日决定把手头的ollvm从4.0.0升级到LLVM8.0.1. 里面的Pass的话,决定移植到8.0.1里面. 我习惯从代码上来动手 1:下载LLVM https: ...
- java当中的Timer定时器的4种使用方式
import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask ...
- TCP/UDP Linux网络编程详解
本文主要记录TCP/UDP网络编程的基础知识,采用TCP/UDP实现宿主机和目标机之间的网络通信. 内容目录 1. 目标2.Linux网络编程基础2.1 嵌套字2.2 端口2.3 网络地址2.3.1 ...
- exp ORA-01455: converting column overflows integer datatype
EXP-00008: ORACLE error 1455 encounteredORA-01455: converting column overflows integer datatype add ...
- 使用Makefile编译Erlang
#配置选项,可以是DEBUG和RELEASE CONFIG ?= RELEASE #语言配置,可以是chs(简体中文).cht(繁体中文)等等 Region ?= chs #源文件目录 SOURCE_ ...
- zabbix自带database monitor
1. 在zabbix服务器上安装一下两个包: # yum -y install unixODBC mysql-connector-odbc 2. 修改zabbix服务器上ODBC配置: 2.1 Vim ...
- web storage 简单的网页留言版
html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...
- oracle trim无效?
这里说说如果是全角空格怎么去除 方法一 trim(TO_SINGLE_BYTE('aaa')) 方法二 SELECT TRIM(replace('aaa',' ','')) FROM dual
- MyISAM和InnoDB引擎的区别
MySQL默认采用的是MyISAM. MyISAM不支持事务,而InnoDB支持.InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以 ...
- eureka学习(二)
eureka服务端创建好后,现在我们让eureka客户端(也就是服务提供者)注册到eureka上去. 首先加入依赖包: <!--将微服务provider注册到eureka--> <d ...