Nginx-1.6.2+Memcached-1.2.6+Tomcat7负载均衡实现Session共享
2014-10-29 14:08
471 查看
搭建所需要的相关软件和JAR包以下:
Nginx:
nginx-1.6.2.rar
Memcached:
memcached-1.2.6-win32-bin.rar
Tomcat7:
apache-tomcat-7.0.56.rar
Tomcat JAR:
tomcat_lib.rar
前置服务器上: 安装Nginx软件实现负载均衡;
服务器A, B, C上: 安装Memcached实现Session共享, Tomcat7;
步骤一:
Memcached软件安装:
解压memcached-1.2.6-win32-bin.rar, 比如解压到E盘, 在DOS下进入memcached-1.2.6-win32-bin目录
E:\memcached-1.2.6-win32-bin\memcached -h 显示memcached参数
参数说明:
-m <num> 允许最大内存用量, 单位M(默认:64MB)
-u <username> 绑定使用指定用于运行进程<username>
-d start 开始启动Memcached服务
-l <ip_addr> 绑定地址(默认:所有都允许,无论内外网或者本机更换IP, 有安全隐患, 若设置为127.0.0.1就只能本机访问)
-p <num> 设置TCP端口号(默认不设置为:11211)
-d install 安装Memcached服务
-d uninstall 卸载Memcached服务
-d restart 重启Memcached服务
E:\memcached-1.2.6-win32-bin\memcached -d install 安装Memcached服务
E:\memcached-1.2.6-win32-bin\memcached -m 1024 -u root -d start -l 10.0.0.95 -p 11211 指定用量, 进程, IP, 端口, 并启动Memcached
如果防火墙拦截了11211端口号, 请通过以下方法添加端口号, 以下是Windows 7添加方法:
step1、点击控制面板 step2、选择windows防火墙,点击高级设置 step3、在弹出的“高级安全windows防火墙”点击“入站规则”,在右侧“操作”栏点击“入站规则”下的“新建规则…”,此时会弹出一个窗口让你设置。剩下的就非常傻瓜化了。 step4、弹出“新建入站规则向导”-规则类型-选中“端口”,点击下一步。选择规则应用的协议“TCP/UDP”如果是TCP你就选择TCP,UDP就选择UDP。再勾选“特定本地端口”在文本框输入您想开放的端口号(例如1521)。 step5、点击下一步,到“连接符合指定条件时应该进行什么操作?”选择“允许连接”。点击下一步到“配置文件”何时应用该规则,勾选“域”、“专用”、“公用”点击下一步。 step6、配置规则名称,随便输入你自己认为好记的规则名称即可。
步骤二:
Tomcat7配置:
1. 解压tomcat_lib.rar出来, 把所有jar文件, 复制到tomcat安装目录lib中;
2. 修改conf/server.xml文件, 找到Engine标签, 添加jvmRoute属性, 以下:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm95">3. 修改conf/context.xml文件, 添加以下内容到Context标签内, memcachedNodes这个属性必须包含你所有运行的memcached节点, 每个节点的定义格式为<id>:<host>:<port>。
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n95:10.0.0.95:11211,n31:10.0.0.31:11211,n39:10.0.0.39:11211" sticky="false" sessionBackupAsync="false" lockingMode="uriPattern:/path1|/path2" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" copyCollectionsForSerialization="false"/>
步骤三:
Nginx软件安装:
解压nginx-1.6.2.rar, 比如解压到E盘, 在DOS下进入nginx-1.6.2目录:
E:\nginx-1.6.2\start nginx 启动Nginx;
E:\nginx-1.6.2\nginx -h 显示Nginx参数
E:\nginx-1.6.2\nginx -s stop 停止Nginx
E:\nginx-1.6.2\nginx -s reload 重新加载nginx.conf配置文件
nginx.conf配置文件内容以下:
#启动进程,通常设置成和cpu的数量相等 worker_processes 8; #全局错误日志及PID文件 #error_log logs/error.log; #error_log logs/error.log notice; error_log logs/error.log info; #pid logs/nginx.pid; #工作模式及连接数上限 events { #单个后台worker process进程的最大并发链接数 worker_connections 1024; } http { #设定mime类型,类型由mime.type文件定义 include mime.types; default_type application/octet-stream; #设定日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件, #对于普通应用,必须设为 on, #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off, #以平衡磁盘与网络I/O处理速度,降低系统的uptime. sendfile on; #tcp_nopush on; #连接超时时间 #keepalive_timeout 0; keepalive_timeout 65; #设定请求缓冲 include proxy.conf; #开启gzip压缩 #include gzip.conf; #设定负载均衡的服务器列表 upstream armyqin-pc.easternphoenix.com { #weigth参数表示权值,权值越高被分配到的几率越大 server 10.0.0.95:8088 weight=1; #服务器A server 10.0.0.39:80 weight=1; #服务器B server 10.0.0.31:80 weight=1; #服务器C ip_hash; #ip_hash策略将同一IP的所有请求都转发到同一应用服务器 } #设定虚拟主机配置 server { #侦听80端口 listen 80; #定义使用 armyqin-pc.easternphoenix.com访问 server_name armyqin-pc.easternphoenix.com; #默认请求 location / { #定义服务器的默认网站根目录位置 root html; #定义首页索引文件的名称 index index.html index.htm index.shtml index.jsp; proxy_pass http://armyqin-pc.easternphoenix.com; } #启用nginx status 监听页面 location /nginxstatus { stub_status on; access_log on; auth_basic "nginxstatus"; auth_basic_user_file htpasswd; } # 定义错误提示页面 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
步骤四:
新建一个cluster.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>Test</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>SESSION ID:" + session.getId()+"<br>"); %> </body> </html>
相关文章推荐
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
- 详解之:linux下tomcat、nginx的负载均衡及memcached对session共享的实现配置详细总结
- windows使用nginx+memcached实现负载均衡和session或者缓存共享
- Nginx+Tomcat+Memcached 集群Session共享[memcached服务安装、tomcat使用memcache存储session、nginx安装配置实现tomcat负载均衡]
- Tomcat+memcached+Nginx实现session共享
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
- nginx+tomcat+memcached 实现负载均衡 。动静分离。session共享
- nginx+memcached+tomcat实现负载均衡和session共享
- nginx+tomcat+memcached实现负载均衡与session共享
- Nginx +Tomcat 集群+memcached 实现负载均衡和session共享[理论篇]
- Nginx+Tomcat+Memcached实现tomcat集群和session共享
- Nginx+Tomcat+Memcached实现tomcat集群和session共享
- nginx+tomcat+memcached实现session共享
- Nginx + Memcached 实现Session共享的负载均衡
- windows使用nginx+memcached实现负载均衡和session或者缓存共享
- Nginx+Tomcat+Memcached实现tomcat集群和session共享
- Nginx+Tomcat+Memcached实现tomcat集群和session共享
- Nginx+Tomcat+Memcached实现tomcat集群和session共享
- Nginx +Tomcat 集群+memcached 实现负载均衡和session共享[实践篇Windows]
- Nginx+Tomcat+Memcached 实现集群部署时Session共享