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
相关推荐
郑州光合科技余经理1 小时前
同城系统海外版:一站式多语种O2O系统源码
java·开发语言·git·mysql·uni-app·go·phpstorm
一只乔哇噻1 小时前
java后端工程师+AI大模型开发进修ing(研一版‖day60)
java·开发语言·人工智能·学习·语言模型
Dolphin_Home1 小时前
笔记:SpringBoot静态类调用Bean的2种方案(小白友好版)
java·spring boot·笔记
MetaverseMan2 小时前
Java虚拟线程实战
java
浪潮IT馆2 小时前
Tomcat运行war包的问题分析与解决步骤
java·tomcat
悟能不能悟3 小时前
Caused by: java.sql.SQLException: ORA-28000: the account is locked怎么处理
java·开发语言
_院长大人_3 小时前
MyBatis Plus 分批查询优化实战:优雅地解决 IN 参数过多问题(实操)
java·mybatis
C雨后彩虹4 小时前
机器人活动区域
java·数据结构·算法·华为·面试
a3158238064 小时前
Android Framework开发知识点整理
android·java·linux·服务器·framework·android源码开发