memcached对nginx负载tomcat集群共享session
来源:互联网 发布:文明网络小报 编辑:程序博客网 时间:2024/04/28 06:50
一.环境准备
系统:centos6.5
服务与端口:
192.168.0.144:8081 tomcat1 (版本7.0.47)
192.168.0.144:8082 tomcat2
192.168.0.144:80 nginx
192.168.0.144:11211memcached
二.搭建过程
1.安装memcached
准备memcached-1.2.0.tar.gz、libevent-1.2.tar.gz。
安装libevent
/usr/local/ 下创建libevent,用于安装libevent。
# tar -zxvf libevent-1.2.tar.gz# cd libevent-1.2# ./configure –prefix=/usr/local/libevent# make# make install
安装memcached,需指定libevent安装目录
# cd /usr/local/# tar -zxvf memcached-1.2.0.tar.gz# cd memcached-1.2.0# ./configure –with-libevent=/usr/local/libevent# make# make install
安装完成后memcached安装到 /usr/local/bin/memcached
以上,启动memcached会报错:
# ./memcached -u root -p 11211 -l 192.168.0.144 -c 5000 -P /tmp/memcached.pid -m 64 -d/usr/local/bin/memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory
执行以下命令,解决上述问题:
ln -s /usr/local/libevent/lib/libevent-1.2.so.1 /usr/lib/libevent-1.2.so.1
重新启动,并查看是否启动成功:
# ps -ef | grep memcached
停止命令:# kill `cat /tmp/memcached.pid`
-p 使用的tcp端口,默认11211
-m 最大内存大小,默认64m
-d 作为daemon在后台启动
-l 连接的ip地址,默认为本机
-u 以什么用户启动,仅在root用户下使用该命令
-M 内存耗尽时返回错误,而不是删除
-c 最大同时连接数,默认102
-h 显示帮助
2. 准备tomcat
准备两个tomcat,分别修改server.xml,端口为8081和8082,分别修改webapps/ROOT/index.jsp,
删除里面的“<%@ page session="false" %>”,然后body中加入如下部分代码,用于区别两个tomcat和后期session共享判断,注意其中一个为session.setAttribute("name","xxx"),另一个为session.getAttribute("name"),这样即可判断session是否共享。
IP:192.168.0.144:8081<br/><%@ page contentType="text/html;charset=UTF-8" isELIgnored="false"%>SessionID:<%=session.getId()%><%=session.getAttribute("name") %><br/>SessionIP:<%=request.getServerName()%><br/>SessionPort:<%=request.getServerPort()%><% out.println("This is Tomcat Server 8081"); %>
分别启动两个tomcat并访问,确定两个tomcat服务能同时成功启动。
3.准备nginx
安装过程略(版本1.6.2),附nginx配置文件代码:
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream session-share {# session-share这个名称随便取,与下面location中一致即可 server 192.168.0.144:8081 weight=1; # 第一个tomcat IP与端口 server 192.168.0.144:8082 weight=2; # 第二个tomcat IP与端口 } server { listen 80;# nginx端口 server_name localhost;location / {proxy_pass http://session-share;proxy_redirect default;} error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
启动nginx,并查看是否启动成功:
# /usr/local/nginx/sbin/./nginx# ps -ef | grep nginx
访问192.168.0.144并刷新,页面中显示的tomcat端口在变化,说明负载成功。
4.加入session共享需要包
需要包为asm-3.2.jar、kryo-1.04.jar、kryo-serializers-0.11.jar、memcached-session-manager-1.8.3.jar、memcached-session-manager-tc7-1.8.3.jar、minlog-1.2.jar、msm-kryo-serializer-1.8.3.jar、reflectasm-1.01.jar、spymemcached-2.11.1.jar.
分别加入两个tomcat中的lib下,分别重启tomcat,并查看是否报错。
访问192.168.0.144,刷新几次后,发现能取到session中的name值,说明session共享成功。
安装
- memcached对nginx负载tomcat集群共享session
- nginx、memcached、tomcat 负载均衡和集群配置,session共享
- Windows7 + Nginx + Memcached + Tomcat 集群 session 共享
- Nginx + Memcached + Tomcat 集群 session 共享
- Nginx+Tomcat+Memcached集群Session共享
- Nginx+Tomcat+Memcached集群Session共享(windows)
- Nginx+Tomcat+Memcached集群Session共享
- Nginx+Tomcat+Memcached集群Session共享 .
- Nginx+Tomcat+Memcached集群Session共享
- Nginx+Tomcat+Memcached集群Session共享
- Nginx+Tomcat+Memcached集群Session共享
- Nginx+Tomcat+Memcached集群Session共享
- 【nginx+memcached+tomcat集群 session共享完整版】
- Nginx+Tomcat+Memcached集群Session共享
- nginx+memcached+tomcat集群 session共享完整版
- nginx+memcached+tomcat集群 session共享完整版
- Nginx+Tomcat+Memcached集群Session共享
- Nginx+Tomcat+Memcached集群Session共享
- 本机电脑搜索,类似Everything
- 初学支持向量机(SVM)
- iOS tableview自定制以及scrollview的无卡顿定时滚动
- 几个容易忽视的java编程细节
- Xcode升级7.2后无法真机调试的解决办法
- memcached对nginx负载tomcat集群共享session
- Numpy读书笔记
- WebSphere安装、系统部署、连接池
- MySQL Cluster(MySQL 集群) 实战
- iOS分享【OC】—— 浅谈 GCD
- 蓝桥杯模拟试题 3
- 【GCC编译arm 运行出错】./any: line 1: syntax error: unexpected word (expecting ")")
- mongodb不保存时区信息
- 关于Tomcat和Tomcat一些讨论