8s 配置session保持_Centos7部署Nginx负载均衡Tomcat服务器及session共享架构

本文介绍了负载均衡和session共享的概念,阐述因负载均衡可能导致用户操作数据丢失,需集群session共享机制。详细说明了前期准备,包括Centos7服务器配置等,还介绍了部署Tomcat集群、Nginx负载均衡的步骤,最后进行测试验证。
往日精选文章 最中肯的Redis规范全在这了 Redis 高级面试题 学会这些还怕进不了大厂? Redis中缓存雪崩、缓存穿透等问题的解决方案 掌握Redis主从复制、哨兵、Cluster三种集群模式 2020 年最新版 68 道Redis面试题,收藏起来备用!

精选文章正文

负载均衡
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务session共享
Session 是客户端与服务器通讯会话跟踪技术,服务器与客户端保持整个通讯的会话基本信息
由于负载均衡会把任务分摊到不同的机器上,因此当用户进行页面刷新时会从机器A跳转到机器B,此时用户所进行的所有操作数据可能会丢失,因此需要通过集群的session共享机制来实现数据跟踪

前期准备

准备Centos7服务器,同步系统时间,配置IP地址和hostname,关闭防火墙和selinux安装openjdk

[root@localhost ~]# yum install java -y

#查看安装情况
[root@localhost ~]# java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

部署Nginx
从官网下载yum源并安装Nginx

[root@localhost ~]# yum install nginx -y

部署redis

#yum安装redis
[root@localhost ~]# yum install redis -y

#配置
#设定为后台守护进程方式运行
daemonize yes
#设定登录密码(可选)
masterauth "your_password"

#启动服务
[root@localhost ~]# systemctl start redis

部署Tomcat集群

部署tomcat1

从Tomcat官网下载Tomcat7压缩包并解压

[root@localhost ~]# tar -zxvf apache-tomcat-7.0.104.tar.gz -C /usr/local/tomcat-7

在/usr/local/tomcat-7/lib文件夹中添加三个jar包实现连接redis和session共享

commons-pool-1.6.jar
jedis-2.0.0.jar
tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar

配置服务启动文件

[root@localhost ~]# vi /usr/lib/systemd/system/tomcat7.service
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/usr/local/tomcat-7/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat-7
Environment=CATALINA_BASE=/usr/local/tomcat-7
ExecStart=/usr/local/tomcat-7/bin/startup.sh
ExecStop=/usr/local/tomcat-7/bin/shutdown.sh
User=root
Group=root
[Install]
WantedBy=multi-user.target

配置redis缓存

[root@localhost ~]# vi /usr/local/tomcat-7/conf/context.xml
WEB-INF/web.xmlWEB-INF/tomcat-web.xml${catalina.base}/conf/web.xml host="127.0.0.1"
port="6379"
#redis有设置密码登录则需要填写密码
password="your_password"
database="0"
maxInactiveInterval="60" />

编写读取redis缓存文件

[root@localhost ~]# vi /usr/local/tomcat-7/webapps/ROOT/session.jsp





shared session



session id=

tomcat 1

启动服务

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start tomcat7

部署tomcat2

#复制tomcat1文件夹
[root@localhost ~]# cp -r /usr/local/tomcat-7/ /usr/local/tomcat-7-8888/

修改配置文件

[root@localhost ~]# vi /usr/local/tomcat-7-8888/conf/server.xml
#修改三处端口号
address="::1"
port="8019"
redirectPort="8443" />

配置服务启动文件

[root@localhost ~]# vi /usr/lib/systemd/system/tomcat7-8888.service
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/usr/local/tomcat-7-8888/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat-7-8888
Environment=CATALINA_BASE=/usr/local/tomcat-7-8888
ExecStart=/usr/local/tomcat-7-8888/bin/startup.sh
ExecStop=/usr/local/tomcat-7-8888/bin/shutdown.sh
User=root
Group=root
[Install]
WantedBy=multi-user.target

修改读取redis缓存的文件

[root@localhost ~]# vi /usr/local/tomcat-7-8888/webapps/ROOT/session.jsp





shared session



session id=

tomcat 2

修改主页显示以示区分

[root@localhost ~]# vi /usr/local/tomcat-7-8888/webapps/ROOT/index.jsp
Home-7-8888

启动服务

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start tomcat7-8888

部署tomcat3

#复制tomcat1文件夹
[root@localhost ~]# cp -r /usr/local/tomcat-7/ /usr/local/tomcat-7-9999/

修改配置文件

[root@localhost ~]# vi /usr/local/tomcat-7-9999/conf/server.xml
#修改三处端口号
address="::1"
port="8029"
redirectPort="8443" />

配置服务启动文件

[root@localhost ~]# vi /usr/lib/systemd/system/tomcat7-9999.service
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/usr/local/tomcat-7-9999/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat-7-9999
Environment=CATALINA_BASE=/usr/local/tomcat-7-9999
ExecStart=/usr/local/tomcat-7-9999/bin/startup.sh
ExecStop=/usr/local/tomcat-7-9999/bin/shutdown.sh
User=root
Group=root
[Install]
WantedBy=multi-user.target

修改读取redis缓存的文件

[root@localhost ~]# vi /usr/local/tomcat-7-9999/webapps/ROOT/session.jsp





shared session



session id=

tomcat 3

修改主页显示以示区分

[root@localhost ~]# vi /usr/local/tomcat-7-9999/webapps/ROOT/index.jsp
Home-7-9999

启动服务

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start tomcat7-9999

配置Nginx负载均衡

[root@localhost ~]# vi /etc/nginx/conf.d/default.conf
#配置tomcat集群
upstream serverpool{
#默认情况下通过轮询方式来调用tomcat集群
server localhost:8080;
server localhost:8888;
server localhost:9999;
}
#配置服务
server{
listen 80;
server_name localhost;
location / {
proxy_pass http://serverpool/;
}
}

启动服务

[root@localhost ~]# systemctl start nginx

测试验证

验证负载均衡
浏览器访问http://ip7ff5d235c65264385174faaff1c94597.png
点击刷新ecefc6704f8d8c2e1df08b37cbc3d719.png
再次点击刷新06d15ac237d0befacb1ecd1c7ad78a52.png测试session共享
浏览器访问http://ip/session.jsp06ee37b92f08feb24e56d24ac3d6b1b1.png
点击刷新9e65418ebf62ffe7b0ccf2f9ea986d68.png
再次点击刷新152303e69f668f839630e4894f7f794a.png
查看redis数据库记录

[root@localhost ~]# redis-cli
127.0.0.1:6379> auth "your_password"
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> keys *
1) "C13930F70F4B33537E99140CFEDAC637"

04723b322ce632513b632b8ccef1c393.png

先看效果: https://renmaiwang.cn/s/jkhfz Hue系列产品将具备高度的个性化定制能力,并且借助内置红、蓝、绿三原色LED的灯泡,能够混合生成1600万种不同色彩的灯光。 整个操作流程完全由安装于iPhone上的应用程序进行管理。 这一创新举措为智能照明控制领域带来了新的启示,国内相关领域的从业者也积极投身于相关研究。 鉴于Hue产品采用WiFi无线连接方式,而国内WiFi网络尚未全面覆盖,本研究选择应用更为普及的蓝牙技术,通过手机蓝牙与单片机进行数据交互,进而产生可调节占空比的PWM信号,以此来控制LED驱动电路,实现LED的调光功能以及DIY调色方案。 本文重点阐述了一种基于手机蓝牙通信的LED灯设计方案,该方案受到飞利浦Hue智能灯泡的启发,但考虑到国内WiFi网络的覆盖限制,故而选用更为通用的蓝牙技术。 以下为相关技术细节的详尽介绍:1. **智能照明控制系统**:智能照明控制系统允许用户借助手机应用程序实现远程控制照明设备,提供个性化的调光及色彩调整功能。 飞利浦Hue作为行业领先者,通过红、蓝、绿三原色LED的混合,能够呈现1600万种颜色,实现了全面的定制化体验。 2. **蓝牙通信技术**:蓝牙技术是一种低成本、短距离的无线传输方案,工作于2.4GHz ISM频段,具备即插即用和强抗干扰能力。 蓝牙协议栈由硬件层和软件层构成,提供通用访问Profile、服务发现应用Profile以及串口Profiles等丰富功能,确保不同设备间的良好互操作性。 3. **脉冲宽度调制调光**:脉冲宽度调制(PWM)是一种高效能的调光方式,通过调节脉冲宽度来控制LED的亮度。 当PWM频率超过200Hz时,人眼无法察觉明显的闪烁现象。 占空比指的...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值