本文搭配环境是在一台windows7 32系统中进行的,多台请修改部分配置。
流程如下图所示,所需要的nginx和memcached以及相关的jar和tomcat会在本文结尾给出下载链接(注:memcached所需要的jar版本与tomcat的版本要对应,否则tomcat启动会报异常)
1、首先我们需要配置多个tomcat,配置过程请另行百度,各tomcat的端口号记录下,我用的是8080和8088。
在各tomcat的webapps\ROOT目录下,修改index.jsp文件加个标识,我在对应的tomcat的页面加了各自的端口。
2、解压nginx,把nginx的文件夹放到e盘server文件夹中
3、修改nginx/conf/nginx.conf(下载资源的是已改好的 只需要修改下ip和端口号)
worker_processes 2;#工作进程的个数,一般与计算机的cpu核数一致
events {
worker_connections 1024;#单个进程最大连接数(最大连接数=连接数*进程数)
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream;#默认文件类型
sendfile on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
keepalive_timeout 65; #长连接超时时间,单位是秒
gzip on;#启用Gizp压缩
#服务器的集群
upstream netitcast.com { #服务器集群名字
<span style="color:#FF0000;"> server 127.0.0.1:8080 weight=1;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server 127.0.0.1:8088 weight=1;</span>
}
#当前的Nginx的配置
server {
listen 80;#监听80端口,可以改成其他端口
server_name localhost;############## 当前服务的域名
location / {
proxy_pass http://netitcast.com;
proxy_redirect default;
proxy_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
4.现在启动nginx服务
在cmd输入
cd e:\server\nginx
e:
start nginx
关闭服务则输入
nginx -s stop
5.nginx+tomcat的配置就好了,nginx默认占了80端口,打开配置好的tomcat,我们可以访问下本机
这是访问到8088的页面
不断刷新,这是访问到8080的页面
也可以把其中一个tomcat关闭刷新页面试试效果。
6.现在开始集成memcached,把memcached也解压到e:\server
在CMD下
cd e:\server\memcached e:
安装服务
e:\server\memcached> memcached.exe -d install启动服务
e:\server\memcached> memcached.exe -d start
memcached默认占端口11211
7.现在开始配置tomcat,每个tomcat都要配置,打开\conf\的context.xml
<Context>
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
<span style="color:#FF0000;"> memcachedNodes="n1:localhost:11211" </span>
failoveNodes="n1"
lockingMode="auto"
sticky="false"
requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"
sessionBackupAsync= "false"
sessionBackupTimeout= "100"
copyCollectionsForSerialization="true"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context>
在每个tomcat的lib下放入jar.rar解压后的jar,在webapps\ROOT目录下添加session.jsp内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'session.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
System.out.println(session.getId());
out.println("<br> This is (TOMCAT1|TOMCAT2), SESSION ID:" + session.getId()+"<br>");
%>
</body>
</html>
重启tomcat 出现如图所示:
现在开始访问session.jsp
另一个浏览器访问
两个tomcat 控制台信息对比
关闭其中一个tomcat,继续访问发现各个浏览器的session 没有变化,
打开关闭的tomcat,把刚刚没有关闭的tomcart关闭,刷新页面,各个浏览器的session还是没变。
就这样一个简单的nginx+memcached+tomcat搞定了,记住一定要开启memcached、nginx服务。
资源下载链接http://download.youkuaiyun.com/detail/xu_xiao_ji/9550578