nginx+tomcat+memcached

nginx+tomcat+memcached的部署

Tomcat:技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,是目前比较流行的Web应用服务器,Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载均衡与邮件服务等开发应用系统常用的功能,是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

第一部分
搭建java环境

在linux1和linux2均搭建
1,解压压缩包
在这里插入图片描述
(2)添加java的命令的环境路径
echo $PATH 查看环境变量是否被添加进去
在这里插入图片描述
在这里插入图片描述
(3)测试环境

写一个java代码测试以下
在这里插入图片描述
在这里插入图片描述
linux2同上
在这里插入图片描述
第二部分:nginx+Tomcat 实现负载均衡
搭建Tomcat环境

linux1和linux2一样
1,解压压缩包
在这里插入图片描述
在这里插入图片描述
以下为测试页面,保存到/usr/local/tomcat/webapps/ROOT/test.jsp
在这里插入图片描述
开启tomcat服务
在这里插入图片描述
查看端口
在这里插入图片描述
将tomcat文件夹直接发送给linux2
在这里插入图片描述
查看以下
在这里插入图片描述
开启tomcat服务
在这里插入图片描述
linux3 nginx反向代理和负载均衡
搭建nginx环境

1,解压压缩包
在这里插入图片描述
创建nginx用户
在这里插入图片描述
编译安装
nginx编译过程中所需要的依赖软件(这里是pcre-devel)打错了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
nginx的tomcat的负载均衡
在这里插入图片描述
定义一个tomcat负载均衡器,当以.jsp结尾的访问,去匹配jsp的location的模块
在这里插入图片描述
更新nginx的配置信息
在这里插入图片描述
测试浏览器输入:172.25.66.3/test.jsp
每次刷新的时候ip就会变化,实现负载均衡
在这里插入图片描述
第三部分:设置黏性
nginx的扩展模块nginx-sticky-module

nginx-sticky-module 为 nginx 的第三方模块,使 nginx 支持 sticky 模式,所谓 sticky 模式就是指同一个用户的访问请求都被发送到同一个 tomcat 实例上处理,nginx以前对session保持支持不太好,主要采用ip_hash把同一来源的客户(同一C段的IP)固定指向后端的同一台机器,ip_hash有个缺点是不能实现很好的负载均衡;直到nginx的扩展模块nginx-sticky-module的出现,解决了session sticky的问题。从同一个客户端来的访问一直指向刚开始分配的后端服务器,不然负载均衡之后,客户端请求又被分配到另一个后端服务器,客户又要再次登陆。

重新编译nginx,首先需要停掉nginx服务并结束所有nginx进程,然后进入nginx的解压目录执行make clean清除原来的配置:
在这里插入图片描述
(1)重新编译nginx来添加nginx-sticky-module(nginx包:nginx-1.10.1.tar.gz)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)nginx对sticky模块的配置(因为1.10版本不支持memcache,要删除之前对memcache的配置)

直接把sticky添加到负载均衡部分,即可配合使用
这种方式,如果linux1挂掉,linux1上的数据将丢失。因此后面会加入memcache的功能,在服务器挂掉时候将数据转移到另一个服务器上保证数据安全。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开启linux1和linux2的tomcat,nginx -s reload 更新nginx的配置文件
在这里插入图片描述
浏览器测试:
当前在那个ip上运行服务就会之一直在那个ip上进行操作 关闭浏览器再次访问才可以换到另一台服务器上
在这里插入图片描述
第四部分:实现交叉式存储

所有的tomcat节点需要安装memcached-session-manager,每一个tomcat会有自己的本地session,当一个请求执行完毕之后,如果对应的session之前不存在(也就是说这是某个用户的第一次请求),则将该session拷贝一份副本至memcached缓存,当该session的下一个请求到达时,会使用tomcat的本地session,请求处理结束之后,session的变化会同步更新到memcached缓存中对应的session里,从而确保本地session和缓存中的session始终保持一致。如果当前结点失效,下一个请求会被路由给另外一个tomcat处理,这个tomcat发现请求所属的session并不存在,于是它将查询memcached缓存,并将查询到的session恢复到本地,这样就完成了容错处理,memcached-session-manager也支持non-sticky session。

tomcat采用交叉共享存储session
Tomcat1 将 session 存储在 memcached2 上。只有当 M2 不可用时,T1 才将 session 存储在 memcached1 上(M1 是 T1 failoverNode)。使用这种配置的好处是,当 T1 和 M1 同时崩溃时也不会丢失 session 会话,避免单点故障。

linux1和linux2设置
停掉tomcat服务
在这里插入图片描述
配置session共享存储所需的jar包
在这里插入图片描述
把jar包复制到/usr/local/tomcat/lib
在这里插入图片描述
删掉重复的

memcache的加入
设置tomcat的配置文件,使其支持session共享存储

vim /usr/local/tomcat/conf/context.xml ##tomcat的配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

开启linux1和linux2的tomcat服务
在这里插入图片描述
两端下载memcached并开启
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:当服务运行在linux1端时,写入数据
在这里插入图片描述
关闭linux1端的tomcat服务
在这里插入图片描述
在浏览器里继续输入数据,服务跳转到linux2端,但仍然可以看到linux1端的数据:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值