网站怎么防k,wordpress安装主题链接路径,如何免费创建个人网站,网站不备案会有什么影响目录
1、环境
2、修改server.xml
3、修改context.xml
4、新增redisson配置文件
5、下载并复制2个Jar包到Tomcat Lib目录中
6、 安装redis
7、配置nginx负载均衡
8、配置测试页面
9、session共享测试验证 前言#xff1a;
上篇中#xff0c;Tomcat session复制及ses…目录
1、环境
2、修改server.xml
3、修改context.xml
4、新增redisson配置文件
5、下载并复制2个Jar包到Tomcat Lib目录中
6、 安装redis
7、配置nginx负载均衡
8、配置测试页面
9、session共享测试验证 前言
上篇中Tomcat session复制及session共享技术-CSDN博客
这个方法是官方推荐的一个方法但是也有一定局限性下面是使用redisson实现session共享方法。 1、环境
该tomcat部署方法在这篇博文中本实验环境步骤基于Tomcat多实例配置-CSDN博客
服务ip 系统nginx192.168.226.20rocky_linux9.4tomcat1192.168.226.20:8080rocky_linux9.4tomcat2192.168.226.20:8081rocky_linux9.4tomcat3192.168.226.20:8082 rocky_linux9.4
确保防火墙、selinux关闭时间同步。 2、修改server.xml 在server.xml中配置所有tomcat实例都配置注意修改实例的路径
vim /data/application/tomcat1/conf/server.xml 40 Resource namebean/redissonauthContainerfactoryorg.redisson.JndiRedissonFactoryconfigPath${catalina.base}/conf/redisson.yamlcloseMethodshutdown/
添加位置可看图 3、修改context.xml
所有tomcat实例都配置注意修改实例的路径
vim /data/application/tomcat1/conf/context.xml ResourceLink namebean/redissonglobalbean/redissontypeorg.redisson.api.RedissonClient /Manager classNameorg.redisson.tomcat.JndiRedissonSessionManagerreadModeREDISjndiNamebean/redisson /
位置如下图 4、新增redisson配置文件
# 如果redis是单独安装的将address地址修改为对应主机地址
vim /data/application/tomcat1/conf/redisson.yamlsingleServerConfig:idleConnectionTimeout: 10000connectTimeout: 10000timeout: 3000retryAttempts: 3retryInterval: 1500password: nullsubscriptionsPerConnection: 5clientName: nulladdress: redis://127.0.0.1:6379subscriptionConnectionMinimumIdleSize: 1subscriptionConnectionPoolSize: 50connectionMinimumIdleSize: 24connectionPoolSize: 64database: 0dnsMonitoringInterval: 5000
threads: 16
nettyThreads: 32
codec: !org.redisson.codec.MarshallingCodec {}
transportMode: NIO
#给两外两个tomcat实例拷贝过去
cp /data/application/tomcat1/conf/redisson.yaml /data/application/tomcat2/conf/redisson.yamlcp /data/application/tomcat1/conf/redisson.yaml /data/application/tomcat3/conf/redisson.yaml5、下载并复制2个Jar包到Tomcat Lib目录中
cd /root/
wget https://repo1.maven.org/maven2/org/redisson/redisson-all/3.22.0/redisson-all-3.22.0.jar
wget https://repo1.maven.org/maven2/org/redisson/redisson-tomcat-8/3.22.0/redisson-tomcat-8-3.22.0.jar
拷贝到lib库中
cp /root/redisson-all-3.22.0.jar /data/application/tomcat1/lib
cp /root/redisson-all-3.22.0.jar /data/application/tomcat2/lib
cp /root/redisson-all-3.22.0.jar /data/application/tomcat3/libcp /root/redisson-tomcat-8-3.22.0.jar /data/application/tomcat1/lib
cp /root/redisson-tomcat-8-3.22.0.jar /data/application/tomcat2/lib
cp /root/redisson-tomcat-8-3.22.0.jar /data/application/tomcat3/lib6、 安装redis
#下载redis
cd wget http://download.redis.io/releases/redis-5.0.10.tar.gz#解压
tar xzf redis-5.0.10.tar.gz -C /data/application/cd /data/application/ mv redis-5.0.10/ redis#下载编译工具
cd redis/ yum install -y gcc make#编译 注如果报错请将刚才解压的安装包删除掉再次重新解压并进行make安装即可。
make
cp redis.conf redis.conf.bakvim redis.conf #修改如下
bind 0.0.0.0 #只监听内网IP大约在69行
daemonize yes #开启后台模式将on改为yes大约在136行
timeout 300 #连接超时时间大约在113行
port 6379 #端口号大约在96行
dir /data/application/redis/data #本地数据库存放持久化数据的目录该目录-----需要存在大约在263行
pidfile /var/run/redis_6379.pid #定义pid文件大约在158行
logfile /var/log/redis.log #定义log文件大约在171行
#创建存放数据的目录
mkdir /data/application/redis/data#配置redis为systemctl启动
cd /lib/systemd/systemvim redis.service添加下述内容
[Unit]
DescriptionRedis
Afternetwork.target[Service]
ExecStart/data/application/redis/src/redis-server /data/application/redis/redis.conf --daemonize no
ExecStop/data/application/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown[Install]
WantedBymulti-user.target
#启动redis
systemctl restart redis 7、配置nginx负载均衡
由于本实验是基于Tomcat多实例配置-CSDN博客
因此nginx负载均衡是已经配置好了得这里再打开验证一下 8、配置测试页面
所有tomcat实例都配置注意修改实例的路径
vim /data/application/tomcat1/webapps/ROOT/session.jsp #加入下述内容
Session_ID: % session.getId() %BR
Session_Port: % request.getServerPort() %BR
Session_URL: % request.getRequestURL() %BR
% out.println(This tomcat server 192.168.226.20:8080);%
注意端口来区分不同实例 9、session共享测试验证
http://192.168.226.20/session.jsp 对比访问可以发现即便后端服务器改变session也不会再变化了。 基于Redis的Session共享解决了以下几个主要问题 横向扩展和负载均衡在传统的Web应用中为了处理大量请求和保证高可用性通常会使用多台服务器来横向扩展应用。然而会话Session状态通常保存在单个服务器的内存中这就导致了当请求被负载均衡到不同服务器时会话状态无法被共享用户需要重新登录或者状态丢失。使用Redis作为会话存储后不同服务器上的应用实例可以通过Redis共享同一份会话数据从而实现了跨服务器的会话共享保证了用户的无缝访问体验。 内存利用率提升传统的会话管理方式是将会话状态存储在每个应用服务器的内存中。随着应用服务器数量的增加会话状态的内存占用也会成倍增加而且每个服务器的内存使用不均可能导致资源浪费。将会话状态存储在Redis等专门的内存数据库中可以有效地减少每个应用服务器的内存压力提高内存利用率。 会话持久化和可靠性Redis支持将数据持久化到磁盘可以配置成持久化到磁盘的数据库中从而保证会话数据的可靠性。即使应用服务器重启或者故障用户的会话状态也可以得到恢复不会丢失提升了应用的可靠性和容错性。 分布式应用的统一管理对于分布式、微服务架构的应用来说使用统一的会话存储可以简化管理和维护工作。开发人员无需在多个服务或多个服务器上分别管理会话状态统一的存储和管理会话状态可以降低复杂度提高开发和维护效率。
综上所述基于Redis的Session共享通过提供可靠的分布式存储解决方案解决了传统会话管理中的单点故障、内存浪费和管理复杂度等问题是构建高性能、可伸缩性和可靠性Web应用的重要手段之一。