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 节点都要放

clip_image001

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&#160; 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`&#160; //关闭

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 保持不变

转载于:https://www.cnblogs.com/AloneSword/p/4481964.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验二十四、OSPF 在NBMA 环境中点到点的配置

实验二十四、OSPF 在NBMA 环境中点到点的配置 一、 实验目的 1. 掌握NBMA 环境中点到点的配置 2. 理解NBMA 环境中点到点网络类型的意义 二、 应用环境 在帧中继的网络中&#xff0c;OSPF 的路由更新不能正常进行&#xff0c;需要配置点到点的网络类型保证OSPF 协议的正常运行…

java可视化多人群聊,java 网络编程-TCP-多人群聊(自问自答)

服务器&#xff1a;public class Chat {public static void main(String[]args) throws IOException{System.out.println("服务器启动中...");//创建服务器ServerSocket servernew ServerSocket(9999);//阻塞式等待连接&#xff0c;当客户端Socket创建好以后才开启wh…

英语------------单词复数形式的规律

1、名词由单数变复数的基本方法如下&#xff1a; ①在单数名词词尾加s。如&#xff1a;map → maps,boy→ boys,horse→ horses, table→ tables. ②s,o,x ,sh,ch结尾的词加es.如&#xff1a;class→classes, box→boxes, hero→heroes, dish→dishes, bench→benches. [注]&am…

ad从2003升级到2008总结

一、升级前要在2003域控运行adprep命令来扩展2003森林架构和域架构 &#xff08;adprep命令在2008 r2安装光盘的support\adprep目录。需要将其复制到2003域控中&#xff09; 源2003 server为64位&#xff1a;adprep.exe 源2003 server为32位&#xff1a;adprep32.exe 转载于:h…

php 只读变量,PHP:类中的静态Readonly属性

直接回答您的问题&#xff1a;不,您不能将常规属性标记为只读.如果你想设置基本类型(数组除外),那将永远不会改变,你应该使用常量const QWE 666;这对于对象和数组不起作用.我看到两个(让我们说)“解决方案”>使用Getterprivate $qwe;public function getQwe() { return $th…

在Xcode6中搭建Python开发环境

http://jingyan.baidu.com/article/f71d60379c73001ab741d14e.html 对于使用Mac电脑&#xff0c;刚入门Python的同学&#xff0c;一定很好奇是不是可以使用Xcode这款IDE工具集成学习Python语言&#xff0c;答案是Yes&#xff01;网络中有很多使用Xcode5搭建的帖子&#xff0c;现…

c++类模板及参数类型的运行时判断

/*C类模板及参数类型的运行时判断(typeid) */#include <stdio.h> #include <typeinfo> #include <vector> using namespace std;template<class T> class Exercise {public:typedef T Type;typedef vector < Type > VT;Exercise(int n);void Dis…

php redis 删除元素,redisTemplate.delete()不能删除元素

最近在学习redis&#xff0c;使用spring-data-redis的RedisTemplate.delete()方法删除时&#xff0c;添加是成功的&#xff0c;但是不能删除。代码如下public abstract class AbstractBaseRedisDao {Autowiredprotected RedisTemplate redisTemplate;// public void setRedisTe…

设计模式心得:三——命令模式

继续设计模式心得体验——命令模式。 命令模式&#xff1a; 将一个请求封装为一个对象&#xff0c;从而使你可用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤销的操作。 一般在命令模式中有三个元素&#xff0c;invoker、command、…

弱水三千 之 统计独立性、统计相关性辨析

序 在随机信号分析中&#xff0c;存在这样一个概念群&#xff1a;不相关、正交、统计独立。 当两个随机过程保持统计独立时&#xff0c;它们必然不相关&#xff1b;但反过来则不一定成立&#xff0c;即不相关的两个随机过程不一定能保持统计独立&#xff0c;唯有高斯过程才是个…

React开发(185):ant design table控制居中和宽度

{ title: 冻结金额, type: price, dataIndex: frozenAmount, align: center, width: 80 },{ title: 钱包状态, dataIndex: statusName, align: center, width: 80 },{ title: 所属商户, dataIndex: platformMerchantName, align: center, width: 80 },

[python] list元素按关键字相加减

python list中的元素按关键字相加或相减&#xff1a; # codingutf-8# 两个list按关键字相加或相减 def ListAdd(list1, list2, bAdd True):if bAdd False:list2 [(k, -v) for (k, v) in list2]d {}list0 list1 list2for (k, v) in list0:d.setdefault(k, 0) # 设置字典元…

Cisco 6509交换机两次更换sup720引擎的过程

1 更换原因 用户的一台Cisco6509交换机&#xff0c;单sup720引擎&#xff0c;使用了一年多的 时间。最近不知道为什么&#xff0c;引擎上外置CF卡的插槽&#xff0c;变形了&#xff0c;无法插入CF卡&#xff0c;只能开个case&#xff0c;作RMA。 2 第一次更换 …

LTRIM、RTRIM和TRIM在ORACLE中的用法:

From: http://www.cnblogs.com/gsk99/archive/2011/04/25/2027359.html LTRIM、RTRIM和TRIM在ORACLE中的用法&#xff1a; 1、LTRIM(C1,C2) 其中C1和C2都可以字符串&#xff0c;例如C1是Miss Liu&#xff0c;C2MisL等等。这是第一个和SQL SERVER不一样的地方。如果记得不错的话…

React开发(186):react 父调用子组件的方法

<BaseTableSearchsearchParams{baseSearchParams}onSearch{this.handleSearch}onRef{(node) > (this.searchRef node)}highSearch{true}/>

php有lambda表达式吗,Python中lambda表达式的简单介绍(附示例)

本篇文章给大家带来的内容是关于Python中lambda表达式的简单介绍(附示例)&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。一&#xff1a;匿名函数的定义lambda parameter_list: expression二&#xff1a;三元表达式条件为真时…

编程个人教训

Matlab 1、生成数据时&#xff0c;多重循环&#xff0c;最起码要把最里面的循环跑一遍&#xff0c;看看生成的图片&#xff0c;和label有没错。确定一下&#xff0c;然后再跑整个程序。 2、跑for循环&#xff0c;卡死在某一个数据上。可以把这个数据单独运行下看看结果 3、生成…

linux命令行快捷键

2019独角兽企业重金招聘Python工程师标准>>> 转自&#xff1a;http://os.chinaitzhe.com/linux/2008-01/119926636930912.html history 显示命令历史列表 ↑(Ctrl p) 显示上一条命令 ↓(Ctrl n) 显示下一条命令 !num 执行命令历史列表的第num条命令 !! 执行上一条…