Nginx + tomcat + memcached的配置

Tomcat-1 (T1) 将 session 存储在 memcached-2 (T2)上。只有当 M2 不可用时,T1 才将 session 存储在 memcached-1 上(M1 是 T1 failoverNode)。使用这种配置的好处是,当 T1 和 M1 同时崩溃时也不会丢失 session 会话,避免单点故障。
以下步骤在 node1 与 node2 上实施:

T1       T2
.  \   /  .
.    X    .
.  /   \  .
M1       M2

实验环境:
node2:server5—>172.25.25.5
node1:server1—>172.25.25.1

安装配置tomcat

首先在server5上面完成配置:
关闭iptables,httpd

[root@server5 ~]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
[root@server5 ~]# cd /usr/local
[root@server5 ~]# ln -s jdk1.7.0_79/ java
[root@server5 ~]# tar zxf apache-tomcat-7.0.37.tar.gz  -C /usr/local/
[root@server5 ~]# cd /usr/local
[root@server5 ~]# ln -s jdk1.7.0_79/ java

这里写图片描述
这里写图片描述
添加环境变量

[root@server5 ~]# vim /etc/profile
在文件最后写入
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
[root@server5 ~]# source /etc/profile
[root@server5 ~]# vim test.java
[root@server5 ~]# javac test.java
[root@server5 ~]# java test

这里写图片描述
环境变量
这里写图片描述
test.java文件内容:
这里写图片描述
启动服务,并且查看服务监听的端口

[root@server5 tomcat]# ./bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

这里写图片描述
浏览器访问:172.25.25.5:8080
这里写图片描述

##启动服务,并且查看服务监听的端口
[root@server5 ~]# /usr/local/tomcat/webapps/ROOT
[root@server5 ROOT]# vim test.jsp

这里写图片描述
test.jsp文件内容:
这里写图片描述
浏览器访问172.25.25.5:8080/test.jsp
这里写图片描述
更改nginx配置文件:
这里写图片描述
nginx.conf文件更改的内容:
这里写图片描述
浏览器访问172.25.25.5/test.jsp
这里写图片描述

server1上的配置:

与server5的配置一致


[root@server1 ~]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
[root@server1 ~]# cd /usr/local
[root@server1 ~]# ln -s jdk1.7.0_79/ java
[root@server1 ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
[root@server1 ~]# source /etc/profile
[root@server1 ~]# vim test.java
[root@server1 ~]# javac test.java
[root@server1 ~]# java test
[root@server1 ~]# tar zxf apache-tomcat-7.0.37.tar.gz  -C /usr/local/
[root@server1 ~]# cd /usr/local
[root@server1 ~]# ln -s jdk1.7.0_79/ java

这里写图片描述
将server5的文件传给server1
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
开启服务:

[root@server1 tomcat]# ./bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

这里写图片描述

server5的配置:

更改nginx配置文件
这里写图片描述
文件内容:
这里写图片描述
这里写图片描述
配置test.jsp文件
这里写图片描述
/usr/local/tomcat/webapps/ROOT/test.jsp文件内容
这里写图片描述
这里写图片描述
在浏览器访问172.25.25.5/test.jsp
这里写图片描述
刷新:
这里写图片描述
配置sticky算法:
vim /usr/local/lnmp/nginx/conf/nginx.conf
这里写图片描述
在浏览器访问172.25.25.5/test.jsp,刷新网页,网页内容不会变
这里写图片描述

session的序列化

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

先关闭两个节点上的tomcat服务,安装memcache
我们采用 kryo 方式进行序列化,需要以下文件
asm-3.2.jar
kryo-1.04.jar
kryo-serializers-0.10.jar
memcached-session-manager-1.6.3.jar
memcached-session-manager-tc7-1.6.3.jar
minlog-1.2.jar
msm-kryo-serializer-1.6.3.jar
reflectasm-1.01.jar
spymemcached-2.7.3.jar
这里写图片描述
这里写图片描述
这里写图片描述
更改文件,并拷贝一份给server2

[root@server5 jar]# vim /usr/local/tomcat/conf/context.xml 

这里写图片描述
server1也关闭服务
这里写图片描述
更改配置文件

[root@server2 jar]# vim /usr/local/tomcat/conf/context.xml 

这里写图片描述
开启两个节点的tomcat服务
在浏览器访问172.25.25.5/test.jsp,
在浏览器添加列表内容,查看日志
这里写图片描述
这里写图片描述
不同的主机访问时会调度到不同的 tomcat 实例上处理,来自同一主机的请求会交给同一个 tomcat 实例处理,此时你 down 掉当前正在响应的 tomcat 实例,nginx 会自动把用户的请求调度到另一个 tomcat 实例上,同时 session 也没有丢掉。

关闭server5上面的tomcat

telnet localhost 11211
get <ID>

这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值