一.环境准备
系统: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共享成功。
安装