一、部署
环境介绍
server1:memcache,tomcat,nginx
server2:tomcat,memcache
所需的软件包
apache-tomcat-8.5.24.tar.gz
tomcat8_memcache_session.jar.zip
jdk-7u79-linux-x64.tar.gz
- 安装tomcat
tomcat要在java环境下,所以要安装jdk
安装jdk
[root@server2 ~]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
[root@server2 ~]# cd /usr/local/
将java和javac写入全局变量
[root@server2 local]# vim /etc/profile
[root@server2 local]# source /etc/profile ## 使生效
测试jdk是否安装正确
安装tomcat
[root@server2 ~]# tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/
[root@server2 local]# ln -s apache-tomcat-8.5.24/ tomcat ## 做软连接
启动服务
网页测试查看,默认访问8080端口
memcached安装
[root@server2 ~]# yum install -y memcached
serve1上进行同样的操作。
这里可将server1上/etc/profile文件直接拷贝到server1的/etc下,这样就不需要再写全局变量,只需要刷新/etc/profile即可,将解压apache-tomcat-8.5.24/拷贝到server1的/usr/local/下,做软连接启动服务,安装memcached,这样server1上就设置完毕。
测试server1
启动服务
[root@server1 bin]# ./startup.sh
这样server2和server1上的tomcat就配置完毕。
session的序列化方案官方推荐的有 4 种:
- java serialization
- msm-kryo-serializer
- msm-javolution-serializer
- msm-xstream-serializer
其中性能最好的序列化方案是 Kryo,此实验我们采用 kryo 方式。
把如下软件包放置到/usr/local/tomcat/lib 目录中
kryo-1.03.jar
kryo-serializers-0.8.jar
memcached-2.5.jar
memcached-session-manager-1.5.1.jarmemcached-session-manager-tc7-1.5.1.jar
minlog-1.2.jar
msm-kryo-serializer-1.5.1.jar
reflectasm-0.9.jar
二、两个tomcat实现负载均衡
这里server1上nginx已经安装过,不再说明安装nginx的过程。
[root@server1 ~]# cd /usr/local/lnmp/nginx/conf/
[root@server1 conf]# vim nginx.conf
以jsp结尾的会去匹配本机的8080端口
重新加载nginx服务
访问页面172.25.96.1/index.jsp
这个页面的位置在/usr/local/tomcat/webapps/ROOT/index.jsp
在此默认发布目录下编写一个测试页面
[root@server1 ROOT]# echo server1 > test.jsp
测试
三、实现负载均衡及session共享
sticky-module为nginx的第三方模块,使nginx支持sticky模式,所谓sticky模式,就是指同一个用户的访问请求都被发送到同一个tomcat实例上处理
这里已经安装过nginx,先停止nginx服务,重新编译。
编译的时候指定sticky的解压所在目录
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx --add-module=/nginx-goodies-nginx-sticky-module-ng-08a395c66e42
覆盖之前的配置文件。
修改测试页内容
[root@server1 ROOT]# vim test.jsp
网站上测试
查看server2的日志