一 Tomcat 简介:

Tomcat服务器是一个免费的开发源代码的WEB应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。其主要的应用场景是解析动态程序代码(Java)JSP程序可以处理Tomcat界面

二 环境安装:

主机名 IP地址 作用
server 1 192.168.3.10 nginx调取器,Tomcat客户端,memcached服务器
server 2 192.168.3.20 tomcat 客户端,memcached 服务器

会话保持的三种方式
Session sticky会话绑定:通过在前端调度器的配置中实现统一session发送至同一后发端服务器
Session cluster会话集群:通过配置Tomcat保持所有Tomcat的session的信息一致。
Session server 会话服务:将所有的session交给专门的session服务管理。
这里讲解第三种,使用Memcached做session server
架构图:
nginx+tomcat+memcache会话保持_第1张图片

原理:
当server1中Tomcat 宕机后,server2 接管会话后会从本地的memcached处读取memcached的信息,
当server1 的memcached 宕机后,server2 的Tomcat中会将会话信息存至本地,以致不会丢失。

1 安装和配置java环境

1 下载相关软件
nginx+tomcat+memcache会话保持
2 解压java包
nginx+tomcat+memcache会话保持
3创建软连接
nginx+tomcat+memcache会话保持
4 修改环境变量,使得java可以正常运行
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
5 进行刷新
nginx+tomcat+memcache会话保持
6 如果javac能够自动补全,则成功
nginx+tomcat+memcache会话保持

2 tomcat 安装

1 解压Tomcat
nginx+tomcat+memcache会话保持
2 创建软连接
nginx+tomcat+memcache会话保持

3 启动tomcat 程序
nginx+tomcat+memcache会话保持_第2张图片
4 查看其默认监听的端口是8080
nginx+tomcat+memcache会话保持
5 进行访问查看
nginx+tomcat+memcache会话保持_第3张图片
6 通过添加时间来查看其java环境是否安装成功
nginx+tomcat+memcache会话保持_第4张图片
进行访问查看
nginx+tomcat+memcache会话保持_第5张图片

7 修改nginx配置:
nginx安装:https://blog.51cto.com/11233559/2110593
其每次都要输入8080,将其改成默认的80端口
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
重启服务
nginx+tomcat+memcache会话保持
进行查看
nginx+tomcat+memcache会话保持_第6张图片

三 配置tomcat+nginx+memcahe 的组合环境

1 环境准备

开启一台虚拟主机并配置与上一台相同的java环境和tomcat
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持_第7张图片nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持_第8张图片nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持_第9张图片

2 进行实验:

1 配置使用nginx 的反向代理负载均衡

nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持

2 重启服务

nginx+tomcat+memcache会话保持

3 验证nginx的轮询机制:

nginx+tomcat+memcache会话保持nginx+tomcat+memcache会话保持
并在server2上做出相应的修改
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
进行查看
nginx+tomcat+memcache会话保持_第10张图片
nginx+tomcat+memcache会话保持_第11张图片

4 配置网页使其可以写入服务器会话缓存中的页面

nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持_第12张图片
转发至server2 并进行查看
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持_第13张图片
此无法做到会话保持,因此需要使用memcached进行缓存其会话。
nginx+tomcat+memcache会话保持_第14张图片

5 此时需要配置cookie进行对访问客户端的控制

nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
重启服务:
nginx+tomcat+memcache会话保持
查看其会话可以保持
nginx+tomcat+memcache会话保持_第15张图片
下载java包使其支持更精确的数据查看功能
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持_第16张图片
nginx+tomcat+memcache会话保持_第17张图片nginx+tomcat+memcache会话保持_第18张图片

6 memcached 安装

server2上安装memcached服务
nginx+tomcat+memcache会话保持
启动并查看其11211端口情况
nginx+tomcat+memcache会话保持_第19张图片
在tomcat中添加memcahed的配置,此处使用的是交叉存储,及默认server1 的访问数据被刷新到server2 的memcached上
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持_第20张图片
重启服务使其生效:
nginx+tomcat+memcache会话保持_第21张图片
nginx+tomcat+memcache会话保持_第22张图片
查看日志,看其是否与后端存储关系建立完毕
nginx+tomcat+memcache会话保持_第23张图片nginx+tomcat+memcache会话保持
nginx+tomcat+memcache会话保持
进行访问,其刷新到server 2 上的memcahed中
nginx+tomcat+memcache会话保持_第24张图片
关闭memcahed
nginx+tomcat+memcache会话保持
数据切换到server1 上的memcached中,保持成功
nginx+tomcat+memcache会话保持_第25张图片

关闭tomcat
nginx+tomcat+memcache会话保持_第26张图片
nginx+tomcat+memcache会话保持_第27张图片
nginx+tomcat+memcache会话保持_第28张图片