一、概述
Nginx负责负载均衡,Tomcat负责实际服务,Memcached负责同步Tomcat的Session,达到Session共享的目的。
二、实验环境
server1:
server3:
三、配置tomcat(server1和server3配置相同)
1.安装java环境
两种方法:1)rpm包:直接安装()
2)编译
2.编译安装
1)解压到/usr/local/
2)做软连接
3)修改环境变量(java家目录,java库目录,java运行路径)
source /etc/profile 执行此命令使配置生效
4)编写测试脚本
[root@server1 ~]# vim test.java
5)测试
## 先编译
[root@server1 ~]# javac test.java
## 测试
[root@server1 ~]# java test
Hello World!
2.安装tomcat
1)下载 apache-tomcat-7.0.37.tar.gz
2)解压到/usr/local
[root@server3 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
3)做软连接
[root@server3 local]# ln -s apache-tomcat-7.0.37/ tomcat
4)在/usr/local/tomcat/webapps/ROOT下,建立test.jsp
5)在/usr/local/tomcat/bin,启动tomcat,访问tomcat的默认发布页面,index.jsp,默认端口为8080,访问:
二、负载均衡
server1:
1.启动nginx(前面lnmp中的nginx)
2.修改配置文件,重新加载
ip_hash : IP绑定,保持连接,去掉ip_hash:则默认为轮叫模式
设置默认发布文件
定义tomcat
Server3 配置不变
3.访问ip/test.jsp,可访问到时间页面(test.jsp设置为默认发布文件时,可直接访问ip)
首次访问server1
当server1 tomcat 停止后,访问server3
此时server1上的sension 会被清除,同样server3停止也会清除sension
三、配置memcached
开启memcache服务,并在tomcat中添加模块,保证关闭tomcat后sension不会被清除,使用交叉储存方法,配置如下:
1.nginx添加sticky模块
2.修改配置文件(ip_hash修改为sticky,其他配置不变),重新加载
[root@server1 logs]# nginx -s reload
2.两台虚拟机的tomcat中添加jar模块,
## 删除tc6
[root@server1 lib]# rm -f memcached-session-manager-tc6-1.6.3.jar
4.两台虚拟机都编辑tomcat配置文件
failoverNodes=”n1”(指向本机 server1为n1 server3为n2)
5.两台虚拟机修改test.jsp
6.两台虚拟机先关闭tomcat,再开启tomcat
查看 catalina.out
出现以下代码MemcachedSessionService finished initialization, sticky true, 则表示tomcat初始化成功
7.两台虚拟机安装memcahed
[root@server3 ROOT]# yum install memcached -y
8.客户端访问
当serer1 tomcat down掉时,再次访问:
此时页面显示保存了server1的sension,则配置成功
9.查看sension
## 下载telnet
[root@server3 tomcat]# yum insatll telnet -y
## telnet localhost 11211 查看本地sension
get后输入id(访问网页上显示的id)