NGINX + TOMCAT7 + MEMCACHED 实现SESSION 共享
原文地址: http://my.oschina.net/u/1791256/blog/283064
TOMCAT7.0+ NGINX + MEMCACHED + memcached-session-manager 实现SESSION共享
http://blog.csdn.net/nerissa/article/details/18961361 ; //参考博客
http://pan.baidu.com/s/1pJlZ0mB //相关包下载,含lib所需的jar包
环境:centOS 6.5(64位) 、jdk8_8u5 、tomcat7.054、nginx1.47、libevent-2.0 、memcached-1.4.20
10.1.1.127 // tomcat,nginx,memcached
10.1.1.128 // tomcat
tomcat 机配置
1、卸载自带jdk ,采用rpm 包安装
rpm –qa |grep java | xargs rpm -e --nodeps //批量卸载自带的jdk相关包
2、rpm 安装
rpm -ivh jdk-8u5-linux-x64.rpm //默认安装在 /usr/java
mv 改名改为 /usr/java/jdk
java -version //验证安装成功
3、写入环境
vim /etc/profile
JAVA_HOME=/usr/java/jdk
JRE_HOME=/usr/java/jdk/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
source /etc/profile // 环境生效
4.解压tomcat 测试运行
tar –zxf apache-tomcat-7.0.54.tar.gz -C /usr/local
mv apache-tomcat-7.054 tomcat
vim /etc/sysconfig/iptables //防火墙开放8080端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
service iptables restart
http://10.1.1.127:8080/ //开启tomcat,测试tomcat安装成功
5.导入 msm-1.7包到 tom/lib/ ( tomcat 节点都要放

http://chenzhou123520.iteye.com/blog/1650212 //参考博客
6.更改tomcat session保存方式(Non-Sticky,kryo
以下内容加到配置文件里
vim conf/context.xml
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:10.1.1.217:11211"
sticky="false"
lockingMode="auto"
sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
//参数用法官方文档
https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration
章节Overview over memcached-session-manager configuration attributes
nginx 安装配置
1.源码包安装
#yum install pcre* //nginx 依赖pcre类库
#useradd nginx
#tar xf /share/soft/lamp/nginx/nginx-1.4.7.tar.gz -C /usr/src/
#cd /usr/src/nginx-1.4.7
#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_gzip_static_module --with-http_stub_status_module
# make && make install
2.nginx 反向代理,实现负载均衡代理后面两台tomcat 服务器
user nginx nginx;
worker_processes 5;
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 1024;
use epoll;
}
http {
upstream session {
server 10.1.1.217:8080 weight=1 max_fails=2 fail_timeout=30s;
server 10.1.1.218:8080 weight=1 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name 10.1.1.217;
root /nginxroot/;
location ~ \.(txt|jsp)$ {
proxy_pass http://session;
}
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
mkdir /nginxroot/
//以上是简单的实现的是对jsp访问的均衡调度,实验随便改的
memcached 的安装 //先安装libevent(memcached依赖libevent)
1.安装
#tar zxvf libevent-2.0.21-stable.tar.gz
#cd zxvf libevent-2.0.21-stable
# ./configure --prefix=/usr
#make && make install
# tar zxvf memcached-1.4.20.tar.gz
#cd memcached-1.4.20
# ./configure --with-libevent=/usr
#make && make install
2.启动,关闭命令
//启动 -d 后台运行 –m 内存大小 –p 端口 –c 最大并发数
/usr/local/bin/memcached -d -m 128 -u root -p 11211 -c 256 -P /var/run/memcached.pid
kill `cat /var/run/memcached1.pid` //关闭
http://hxq0506.iteye.com/blog/1388971 //参考链接
测试:
启动顺序 tomcat – nginx – memcached
测试页面test.jsp,放入webapps/ROOT:
Server Info:
SessionID:<%=session.getId()%>
<br>
SessionIP:<%=request.getServerName()%>
<br>
SessionPort:<%=request.getServerPort()%>
<br>
<%
out.println("127"); //标记后端节点
%>
结果:session 保持不变
NGINX + TOMCAT7 + MEMCACHED 实现SESSION 共享的更多相关文章
- Nginx+Tomcat+Memcached实现session共享
实验环境: server1:nginx tomcat memcached server2:tomcat memcached Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入 ...
- Nginx + Memcached 实现Session共享的负载均衡
session共享 我们在做站点的试试,通常需要保存用户的一些基本信息,比如登录就会用到Session:当使用Nginx做负载均衡的时候,用户浏览站点的时候会被分配到不同的服务器上,此时如果登录后Se ...
- 【Tomcat】Tomcat + Memcached 实现session共享
概述 web项目中,Tomcat的访问量总是有限的,这时候就需要用到Tomcat集群,多个Tomcat的时候就要考虑Session共享的问题,这里介绍一种使用Memcached做Session共享的解 ...
- 分布式Session共享(二):tomcat+memcached实现session共享
一.前言 本文主要测试memcached实现session共享的实现方式,不讨论如何让nginx参与实现负载均衡等. 二.环境配置 本测试在Window下进行 name version port To ...
- nginx+tomcat+redis完成session共享
本文记录nginx+redis+tomcat实现session共享的过程 nginx安装:http://blog.csdn.net/grhlove123/article/details/4783467 ...
- Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享
Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享 ============================= 蕃薯耀 2017年11月27日 http: ...
- Tomcat通过Memcached实现session共享的完整部署记录
对于web应用集群的技术实现而言,最大的难点就是:如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点, 大体上有两种方式:一种是把所有Ses ...
- nginx+tpmcat+redis实现session共享
nginx+tpmcat+redis实现session共享 版本:nginx nginx-1.8.0.tar.gztomcat apache-tomcat-7.0.78.tar.gzredis re ...
- nginx+tomcat+redis完成session共享(转载)
转载:http://blog.csdn.net/grhlove123/article/details/48047735 tomcat7下基于redis的session共享所需jar包: http:// ...
随机推荐
- linux下nc提交web报文问题
1.用wireshark截取访问百度首页拿到的请求数据包: GET /index.php?tn=newbdie_bd_dg&bar= HTTP/1.1 Host: www.baidu.com ...
- peda的官方文档说明
peda在github上的官方文档,摘抄过来,方便查阅. 安装 git clone https://github.com/longld/peda.git ~/peda echo "sourc ...
- Elastic-Job开发指南
开发指南 代码开发 作业类型 目前提供3种作业类型,分别是Simple,DataFlow和Script. DataFlow类型用于处理数据流,它又提供2种作业类型,分别是ThroughputDataF ...
- 【LOJ】#2037. 「SHOI2015」脑洞治疗仪
题解 维护区间内1的个数,左边数0的长度,右边数0的长度,区间内0区间最长个数,覆盖标记 第一种操作区间覆盖0 第二种操作查询\([l_0,r_0]\)中1的个数,区间覆盖0,然后覆盖时找到相对应的区 ...
- 【51nod】1565 模糊搜索
题解 这个字符集很小,我们可以把每个字符拿出来做一次匹配,把第一个字符串处理每个出现过的该字符处理成一个区间加,即最后变成第一个字符串的该位置能够匹配某字符 例如对于样例 10 4 1 AGCAATT ...
- 修改web.config来开启Gzip压缩
IIS 7.0之后引入的一个IIS配置文件,详细内容参考官方链接http://www.iis.net/learn/get-started /planning-your-iis-architecture ...
- poj2492 A Bug's Life(带权并查集)
题目链接 http://poj.org/problem?id=2492 题意 虫子有两种性别,有n只虫子,编号1~n,输入m组数据,每组数据包含a.b两只虫子,表示a.b为不同性别的虫子,根据输入的m ...
- VMware下CenOS7系统的安装及lnmp服务器的搭建
CentOS7系统的安装 CentOS7下载:http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso 下 ...
- 前端安全系列之二:如何防止CSRF攻击?
背景 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点.在移动互联网时代,前端人员除了传统的 XSS.CSRF 等安全问题之外,又时常遭遇网络劫持 ...
- JavaScript 网页脚本语言 由浅入深 (随笔)
1)基础 学习目的: 1. 客户端表单验证 2. 页面动态效果 3. jQuery的基础 什么是JavaScript? 一种描述性语言,也是一种基于对象和事件驱动的,并具有安全性能的脚本语言 java ...