nginx+memcached+tomcat

22 篇文章 0 订阅
环境

172.25.44.1(server1):nginx
172.25.44.2、172.25.44.3(server2、server3):tomcat 、memcached

nginx的配置:

在http{}定义up servers

 upstream tcsrvs {
        server 172.25.44.2:8080;
        server 172.25.44.3:8080;
    }

在server{} 部分 定义反向代理

  location ~* (\.jsp|\.do)$ {   #动静分离
        proxy_pass http://tcsrvs;

    }
tomcat主机配置

这里只演示一台tomcat主机的配置,另外一台配置与之类似。
session 的序列化方案官方推荐的有 4 种:

  1. java serialization
  2. msm-kryo-serializer
  3. msm-javolution-serializer
  4. msm-xstream-serializer
    其中性能最好的序列化方案是 Kryo,所以这里我们采用 kryo 方式。
    把如下软件包放置到/usr/local/tomcat/lib 目录中。
    【注意】这些包一定要与所使用的tomcat的版本匹配。
[root@server3 bin]# ls /mnt/meme/
asm-3.2.jar                memcached-session-manager-1.6.3.jar      msm-kryo-serializer-1.6.3.jar
kryo-1.04.jar              memcached-session-manager-tc7-1.6.3.jar  reflectasm-1.01.jar
kryo-serializers-0.10.jar  minlog-1.2.jar                           spymemcached-2.7.3.jar

在这里插入图片描述
自定义一个主机

[root@server3 bin]# tree /data
/data
|-- logs
|   |-- web1_access_log.2018-10-11.txt
|   |-- web2_access_log.2018-10-12.txt
|   `-- web2_access_log.2018-10-13.txt
`-- webapps
    |-- logs
    `-- ROOT
        |-- classes
        |-- index.jsp
        |-- lib
        |-- META-INF
        `-- WEB-INF
  [root@server3 bin]# cat /data/webapps/ROOT/index.jsp 
<%@ page language="java" %>
<html>
	<head><title>TomcatB</title></Haed>
	<body>
		<h1><font color="red">TomcatB.wtt.com</font></h1>
		<table align="centre" border="1">
			<tr>
				<td>Session ID</td>
		<% session.setAttribute("wtt.com","wtt.com"); %>
				<td><%= session.getId() %></td>
			</tr>
			<tr>
				<td>Created on</td>
				<td><%= session.getCreationTime() %></td>
			</tr>
		</table>
	</body>
</html>

在server.xml文件中对所定义的主机做如下配置
这里的Manager部分就是我们所定义的会话管理器

<Host name="web2.wtt.com" appBase="/data/webapps" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="/data/webapps/ROOT" >
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
             memcachedNodes="n1:172.25.44.2:11211,n2:172.25.44.3:11211"
              failoverNodes="n2"
              requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
             transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
             />
     </Context>
     <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
     </Host>

同样在server.xml文件中将默认主机改成我们所定义的主机

 <Engine name="Catalina" defaultHost="web2.wtt.com" >
memcached

直接安装memcached服务,然后开启服务即可

[root@server3 bin]# yum install memcached
[root@server3 bin]# /etc/init.d/memcached start

在客户端访问172.25.44.1/index.jsp
可以看到在负载均衡时session值一直都是不变的。

在这里插入图片描述
在这里插入图片描述

然後停掉server3上的tomcat服務器,session值依舊不變。

在这里插入图片描述

n2代表從Manager中定義的n2節點返回的session值,所以解下來我們聽帶n2的memcached服務
這時session值依舊不變,只是從n1上返回結果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值