nginx+tomcat+memcache集群部署
时间:2016-05-20 20:20 来源:linux.it.net.cn 作者:IT
简要说明:使用nginx做负载均衡;memcache做session共享
1.软件版本
nginx-1.7.3
memcached-1.4.22
tomcat-7.0.43
2.nginx搭建负载均衡配置
编辑nginx/conf/nginx.conf 配置文件
添加负载均衡设置
upstream localhost{
server localhost:8082;
server localhost:8083;
}
server 后面tomcat的Ip及端口
添加80端口的虚拟目录,配置转发代理
-
server {
-
listen 80;
-
server_name localhost;
-
index index.html index.htm index.jsp;#Default Page
-
root /home/www/web/ROOT;#WEB LIB DIRECTRY
-
-
#charset koi8-r;
-
-
#access_log logs/host.access.log main;
-
-
#Set JSP Proxy
-
location /
-
{
-
proxy_set_header Host $host;
-
proxy_set_header X-Real-IP $remote_addr;
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-
proxy_pass http://localhost;
-
}
-
}
3.tomcat 复制一份,设置不同的访问端口和shutdown端口
到这一步就可以实现用nginx+tomcat的负载均衡了。。
均衡后还不够,还需要对session进行处理,接下来安装好memcache.并启动
4.修改tomcat/conf/context.xml文件,添加下列代码
-
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
-
memcachedNodes="n1:127.0.0.1:11211"
-
sticky="false"
-
lockingMode="auto"
-
sessionBackupAsync="false"
-
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
-
sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
-
/>
5.将msm包放入tomcat/lib/中
asm-3.2.jar
kryo-1.04.jar
kryo-serializers-0.11.jar
memcached-session-manager-1.7.0.jar
memcached-session-manager-tc7-1.8.1.jar
minlog-1.2.jar
msm-kryo-serializer-1.7.0.jar
reflectasm-1.01.jar
spymemcached-2.7.3.jar
到此session已处理完毕;
如果配置正确。则可以看到启动的日志里面会有如下信息:
Mar 09, 2015 11:38:47 PM de.javakaffee.web.msm.MemcachedSessionService startInternal
INFO: starts initialization... (configured nodes definition n1:10.211.55.6:11211, failover nodes null)
Mar 09, 2015 11:38:47 PM de.javakaffee.web.msm.RequestTrackingHostValve <init>
INFO: Setting ignorePattern to .*\.(ico|png|gif|jpg|css|js)$
Mar 09, 2015 11:38:47 PM de.javakaffee.web.msm.MemcachedSessionService setLockingMode
INFO: Setting lockingMode to AUTO
Mar 09, 2015 11:38:47 PM de.javakaffee.web.msm.MemcachedSessionService createTranscoderFactory
INFO: Creating transcoder factory de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory
6.测试session的jsp文件
-
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
-
<%
-
HttpSession sess = request.getSession(false);
-
%>
-
<br/> session is : <%=sess.getId() %><br/>
-
<%
-
String name = request.getParameter("name");
-
if(name!=null && name.length()>0){
-
String value = request.getParameter("value");
-
sess.setAttribute(name,value);
-
TestTask.infos.add("name="+name+",value = "+value);
-
}
-
%>
-
<b>Session List:</b><br/>
-
<table >
-
<tr>
-
<td>name</td><td>value</td>
-
</tr>
-
<%
-
Enumeration<String> names=sess.getAttributeNames();
-
while(names.hasMoreElements()){
-
String sname=names.nextElement();
-
String value=sess.getAttribute(sname).toString();
-
%>
-
<tr>
-
<td><%= sname %></td><td><%=value %></td>
-
</tr>
-
<%
-
}
-
%>
-
</table>
-
<br />
-
(责任编辑:IT)
简要说明:使用nginx做负载均衡;memcache做session共享 1.软件版本
nginx-1.7.3
memcached-1.4.22 tomcat-7.0.43
2.nginx搭建负载均衡配置 编辑nginx/conf/nginx.conf 配置文件
添加负载均衡设置 upstream localhost{ server localhost:8082; server localhost:8083; } server 后面tomcat的Ip及端口
添加80端口的虚拟目录,配置转发代理
到这一步就可以实现用nginx+tomcat的负载均衡了。。 均衡后还不够,还需要对session进行处理,接下来安装好memcache.并启动 4.修改tomcat/conf/context.xml文件,添加下列代码
asm-3.2.jar
kryo-1.04.jar
kryo-serializers-0.11.jar
memcached-session-manager-1.7.0.jar
memcached-session-manager-tc7-1.8.1.jar
minlog-1.2.jar
msm-kryo-serializer-1.7.0.jar
reflectasm-1.01.jar
spymemcached-2.7.3.jar
到此session已处理完毕; 如果配置正确。则可以看到启动的日志里面会有如下信息:
Mar 09, 2015 11:38:47 PM de.javakaffee.web.msm.MemcachedSessionService startInternal INFO: starts initialization... (configured nodes definition n1:10.211.55.6:11211, failover nodes null) Mar 09, 2015 11:38:47 PM de.javakaffee.web.msm.RequestTrackingHostValve <init> INFO: Setting ignorePattern to .*\.(ico|png|gif|jpg|css|js)$ Mar 09, 2015 11:38:47 PM de.javakaffee.web.msm.MemcachedSessionService setLockingMode INFO: Setting lockingMode to AUTO Mar 09, 2015 11:38:47 PM de.javakaffee.web.msm.MemcachedSessionService createTranscoderFactory INFO: Creating transcoder factory de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory
6.测试session的jsp文件
(责任编辑:IT) |