tomcat session共享

1. 日志监控工具

  1. 安装
bash 复制代码
tar xf goaccess-1.4.tar.gz
cd goaccess-1.4/
yum install GeoIP-devel-1.5.0-13.el7.x86_64.rpm
yum install -y ncurses-devel.x86_64
./configure --enable-utf8 --enable-geoip=legacy
make
make install


  1. 使用
bash 复制代码
goaccess /usr/local/nginx/logs/access.log -o /usr/local/nginx/html/report.html --log-format=COMBINED --real-time-html & # 

2. jdk与tomcat安装

在192.168.228.12上部署tomcat

bash 复制代码
rpm -ivh jdk-8u121-linux-x64.rpm # 安装jdk的rpm包
tar xf apache-tomcat-7.0.37.tar.gz -C /usr/local/ # 将文件解压到指定位置
cd /usr/local/
ln -s apache-tomcat-7.0.37/ tomcat # 做软链接,方便后续升级
cd tomcat/bin
./startup.sh # 执行安装




## 3. nginx实现对tomcat的反向代理

在192.168.228.11上的nginx文件里面修改配置,从而调用12机器上的tomcat


http://192.168.228.11/test.jsp

http://192.168.228.12:8080/test.jsp

访问的是同一个页面

3. nginx实现对tomcat的负载均衡+反向代理

nginx:sever1

tomcat:sever2 server3

  1. 在server3中同样的安装tomcat
  2. nginx上负载均衡+反向代理


问题:

在浏览网页的时候,因为负载均衡,real server的地址一直会变,不利于session的建立。

  1. nginx上基于cookie负载均衡+反向代理

由于服务器站点CDN加速,基于IP_HASH不合适,而基于cookie可以用。



问题:

当server2 down后,server3被调用处理,但是之前在server2保留的信息没了。

bash 复制代码
/usr/local/tomcat/bin/shutdown.sh # 关闭tomcat服务

4. nginx上基于cookie负载均衡+反向代理+memcached

为tomcat添加功能模块

  1. 安装与配置tomcat
bash 复制代码
yum install -y memcached.x86_64 # 在两台real server上安装memcached
systemctl enable --now memcached.service # 启动服务
bash 复制代码
cp jar/* /usr/local/tomcat/lib # 复制对应版本的jar包到tomcat的lib库


bash 复制代码
vim /usr/local/tomcat/conf/context.xml # 在文件里面添加下面内容
bash 复制代码
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.228.12:11211,n2:192.168.228.13:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
bash 复制代码
 ./shutdown.sh
 ./startup.sh


  1. 测试
bash 复制代码
yum install -y telnet
telnet localhost 11211
telnet 192.168.228.13 11211
相关推荐
丶白泽11 分钟前
重修设计模式-结构型-装饰器模式
java·设计模式·装饰器模式
星空下夜猫子1 小时前
JAVA 使用POI实现单元格行合并生成
java·开发语言
Flying_Fish_roe1 小时前
Java中NoSQL 与分布式数据库
java·数据库·nosql
Renascence.4092 小时前
力扣--649.Dota2参议院
java·数据结构·算法·leetcode
VaporGas2 小时前
掌握Java封装:以猜拳小游戏为例,深入理解OOP
java·开发语言·学习·面向对象编程·oop·猜拳游戏·封装思想
小小工匠2 小时前
加密与安全_ sm-crypto 国密算法sm2、sm3和sm4的Java库
java·算法·安全·sm2·sm3·sm4
程序员大金2 小时前
基于SpringBoot+Vue+MySQL的垃圾分类回收管理系统
java·vue.js·spring boot·后端·mysql·mybatis
陈小唬2 小时前
树形结构构建的两种方式
java·数据库·算法
CJH~2 小时前
Java入门:09.Java中三大特性(封装、继承、多态)01
java·开发语言·单例模式
打工人9962 小时前
反编译app
java