生产环境Session解决方案、Session服务器之Redis

news2025/1/11 15:05:14

 

目录

一、服务器配置

二、安装nginx

三、安装配置Tomcat:

 四、配置session

Session服务器之Redis

Redis与Memcached的区别

安装部署redis


一、服务器配置

IP地址

主机名

软件包列表

192.168.100.131

huyang1

nginx

192.168.100.133

huyang3

JDK Tomcat  

192.168.100.135

huyang5

JDK Tomcat

二、安装nginx

配置主机名:
[root@localhost ~]# hostname nginx
[root@localhost ~]# bash
安装nginx软件包并修改:
[root@nginx ~]# yum -y install pcre-devel zlib-devel openssl-devel 
[root@nginx ~]# useradd -s /sbin/nologin -M nginx
[root@nginx ~]# tar xf nginx-1.15.9.tar.gz -C /usr/src/
[root@nginx ~]# cd /usr/src/nginx-1.15.9/
[root@nginx ~]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module && make && make install

--prefix=/usr/local/nginx 		#指定安装目录
--user=nginx --group=nginx 		#指定运行的用户和组
--with-file-aio 				#启用文件修改支持
--with-http_stub_status_module #启用状态统计
--with-http_ssl_module 		#启用ssl模块
--with-http_flv_module 		#启用flv模块,提供寻求内存使用基于时间的偏移量文件
--with-http_gzip_static_module	#启用gzip静态压缩
 
[root@nginx ~]# ln -s /usr/local/nginx/sbin/nginx  /sbin/
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
34     upstream tomcat_pool {
 35         server 192.168.100.133:8080 weight=1 max_fails=1 fail_timeout=10s;
 36         server 192.168.100.135:8080 weight=1 max_fails=1 fail_timeout=10s;
 37     }
 38 
 39     server {
 40         listen       80;
 41         server_name  localhost;
 42         charset utf-8;
 43         
 44         location / {
 45             root   html;
 46             index  index.html index.htm;
 47             proxy_pass http://tomcat_pool;
 48         }   
[root@nginx ~]# nginx

三、安装配置Tomcat:

配置主机名:
[root@localhost ~]# hostname node1  另外一台机器配置为node2
[root@localhost ~]# bash
安装配置Tomcat
解压apache-tomcat-7.0.54.tar.gz 包
[root@tomcat1 ~]# tar xf apache-tomcat-7.0.54.tar.gz 

解压后生成apache-tomcat-7.0.54文件夹,将该文件夹移动到/usr/local下,并改名为tomcat
[root@tomcat1 ~]# mv apache-tomcat-7.0.54 /usr/local/tomcat

启动Tomcat
[root@tomcat1 ~]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:      /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

Tomcat 默认运行在8080端口
[root@tomcat1 ~]# netstat -lnpt | grep java
tcp        0      0 :::8080                     :::*                        LISTEN      3318/java   

浏览器访问测试 192.168.100.133:8080 和 192.168.100.135:8080

均呈现下列图形!

 四、配置session

建立session.jsp的测试页面
[root@node1 ~]# vim /usr/local/tomcat/webapps/ROOT/session.jsp
Session ID:<%= session.getId() %><BR>
SessionPort:<%= request.getServerPort() %>
<% out.println("This tomcat server 192.168.100.133");%>

[root@node2 ~]# vim /usr/local/tomcat/webapps/ROOT/session.jsp
Session ID:<%= session.getId() %><BR>
SessionPort:<%= request.getServerPort() %>
<% out.println("This tomcat server 192.168.100.135");%>		
Session绑定:
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
34     upstream tomcat_pool {
35         ip_hash;
 36         server 192.168.100.133:8080 weight=1 max_fails=1 fail_timeout=10s;
 37         server 192.168.100.135:8080 weight=1 max_fails=1 fail_timeout=10s;
 38     }
[root@nginx ~]# killall -HUP nginx

 浏览器访问测试 192.168.100.131/session.jsp

 刷新,id和IP地址都会变化

Session服务器之Redis

Redis与Memcached的区别

  1. 内存利用率:使用简单的key-value(键值对)存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
  2. CPU性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached还是稍有逊色。
  3. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
  4. Redis支持数据的备份,即master-slave模式的数据备份。
  5. Redis不仅仅支持简单的key-Value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

安装部署redis

[root@huyang5 ~]# tar xf redis-6.2.12.tar.gz -C /usr/src/

[root@huyang5 ~]# cd /usr/src/redis-6.2.12/

[root@huyang5 redis-6.2.12]# make

[root@huyang5 redis-6.2.12]# mkdir -p /usr/local/redis/{bin,etc,var}

[root@huyang5 redis-6.2.12]# cd src/

[root@huyang5 src]# cp redis-benchmark  redis-check-aof redis-cli redis-server  /usr/local/redis/bin/

[root@huyang5 redis-6.2.12]# cp ../redis.conf  /usr/local/redis/etc

[root@huyang5 redis-6.2.12]# cp ../sentinel.conf  /usr/local/redis/etc

[root@huyang5 redis-6.2.12]# vim /usr/local/redis/etc/redis.conf //修改配置文件

[root@huyang5 redis-6.2.12]# killall -9 redis-server

启动redis:

[root@huyang5 redis-6.2.12# /usr/local/redis/bin/redis-server  &&   /usr/local/redis/etc/redis.conf

[root@huyang5 redis-6.2.12]# netstat -anpt |grep redis

监控redis共享session:

[root@huyang5 redis-6.2.12]# /usr/local/redis/bin/redis-cli -p 6379  monitor

[root@huyang5 redis-6.2.12]# cp tomcat-redis-session-manage-tomcat7.jar tomcat-juli.jar commons-logging-1.1.3.jar commons-pool2-2.2.jar jedis-2.5.2.jar /usr/local/tomcat/lib

修改context.xml文件以支持调用redis

[root@huyang5/3 redis-6.2.12]# vim /usr/local/tomcat/conf/context.xml

[root@huyang5 ~]# /usr/local/tomcat/bin/shutdown.sh

[root@huyang5 ~]# /usr/local/tomcat/bin/startup.sh

[root@huyang5 redis-session]# netstat -anpt | grep :6379

[root@huyang3 ~]# netstat -anpt | grep :6379

浏览器访问测试 http://192.168.100.131/session.jsp 

刷新一次:这样就锁定在了135的session id

同理也可以反过来锁定133的session id

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/787158.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

隧道安全监测解决方案

隧道安全监测 解决方案 一、监测目的 通过监控量测&#xff0c;实现信息化施工&#xff0c;不仅能及时掌握隧道实际的地质情况&#xff0c;掌握隧道围岩、支护衬砌结构的受力特征和变形情况&#xff0c;据此可以尽早发现塌方、大变形等灾害征兆&#xff0c;及时采取措施&…

Qgis二次开发-加载高德在线地图失败报错Raster layer Cannot instantiate the ‘wms‘ data provider

1.加载在线的高德地图 以下是在线高德地图地址。 http://webrd01.is.autonavi.com/appmaptile?x{x}&y{y}&z{z}&langzh_cn&size1&scale1&style8 以下是代码示例&#xff1a; #include <QApplication> #include <QMainWindow> #include …

Django学习笔记-表单(forms)的使用

在Django中提供了了form表单&#xff0c;可以更为简单的创建表单模板信息&#xff0c;简化html的表单。 一、网页应用程序中表单的应用 表单通常用来作为提交数据时候使用。 1.1 创建表单模板文件夹 在项目文件夹下创建一个template文件夹&#xff0c;用于存储所有的html模…

Integer 和 int

一、区别 1.Integer是int的包装类&#xff0c;int则是java的一种基本的数据类型&#xff1b; 2.Integer变量必须实例化之后才能使用&#xff0c;而int变量不需要实例化&#xff1b; 3.Integer实际是对象的引用&#xff0c;当new一个Integer时&#xff0c;实际上生成一个指针指向…

Linux vsftp三种模式的简单配置部署

环境&#xff1a;Debian 6.1.27-1kali1 (2023-05-12) vsftpd 安装 --查看是否当前系统是否已安装 apt list --installed | grep vsftpd 没有安装的话&#xff0c;就正常安装 apt-get update apt-get install vsftpd 一、匿名用户模式 分享一些不重要文件&#xff0c;任…

AI学习笔记二:YOLOV5环境搭建及测试全过程

若该文为原创文章&#xff0c;转载请注明原文出处。 记录yolov5从环境搭建到测试全过程。 一、运行环境 1、系统&#xff1a;windows10 &#xff08;无cpu) 2、yolov5版本&#xff1a;yolov5-5.0 3、python版本&#xff1a;py3.8 在创建虚拟环境前需要先把miniconda3和py…

Font Awesome 5使用

Font Awesome 5介绍 Font Awesome 5 的专业版有7842个图标。 要使用免费的Font Awesome 5 图标&#xff0c;您可以选择下载Font Awesome库&#xff0c;或者在Font Awesome注册一个帐户&#xff0c;并获得一个代码&#xff08;称为KIT CODE&#xff09;&#xff0c;以便在将Fo…

Wireshark抓包分析教程(ubuntu版本)

安装 first&#xff0c;多亏我们的C知道&#xff0c;成功安装了wireshark&#xff0c; Steps are as following&#xff1a; 添加wireshark的软件源(PPA:personal package archive(档案)) sudo apt-add-repository ppa:wireshark-dev/stable ppa:wireshark-dev/stable 是一个…

Quad Remesher 参数效果记录

基本属性 Detect Hard-Edges by angle 这个属性最好开启&#xff0c;它用于保持必要的边缘

WEB:ics-06

背景知识 burpsuite的使用 题目 所有都尝试点了一遍&#xff0c;只有报表中心可以打开 先查看源代码&#xff0c;没有发现有用的信息 选择了日期范围但是毫无反应&#xff0c;这里发现url中有一个id1&#xff0c;尝试抓包爆破 使用bp进行抓包 设置有效载荷配置&#xff0c;开…

(链表) 剑指 Offer 24. 反转链表 ——【Leetcode每日一题】

❓剑指 Offer 24. 反转链表 难度&#xff1a;简单 定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制&#xff1a; 0 < …

小程序如何删除/上架/下架商品

在小程序中&#xff0c;产品的删除、上架和下架是常见的操作&#xff0c;可以根据实际需求来管理商品的展示与销售。下面将介绍如何在小程序中删除上架下架商品的具体步骤。 进入商品管理页面&#xff0c; 在个人中心点击管理入口&#xff0c;然后找到“商品管理”菜单并点击。…

Git----分布式版本控制系统

1. 简介 Git是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或大或小的项目。它是世界上目前最先进的分布式版本控制系统。 Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。 Git与常用的版本控制工具CVS、Subversio…

2023最新版本Activiti7系列-流程中的任务

流程中的任务 1.用户任务 用户任务:用于定义流程中需要人工参与的任务。 用户任务可以在流程中创建并分配给特定的用户或用户组。当流程执行到用户任务时&#xff0c;流程将暂停&#xff0c;并等待相应的用户完成该任务。完成用户任务后&#xff0c;流程将继续执行。 用户任…

系统架构设计师视频教程笔记

根据历年真题倒翻官方教程&#xff0c;发现好多内容没有&#xff0c;据说2022新版改动很大 既然是真题&#xff0c;肯定有参考价值&#xff0c;那就看看旧视频吧 考试分享 软考高级架构师&#xff0c;有用但不大【通过后分享】 up主公司要接政府项目&#xff0c;有考证需求 …

Spring:Annontation

Bean 配置注解Autowired 注解context:component-scan 标签 配置 在 Spring 中&#xff0c;配置 bean 实例一般使用 xml 配置方式或注解&#xff08;Annontation&#xff09; 方式进行配置。 注解 注解&#xff08;Annontation&#xff09;&#xff0c;是在原有代码和逻辑下通…

数据库字段变更监控平台设计开发

序&#xff1a; 在开发过程中&#xff0c;在值班解决客服问题时&#xff0c;在分析定位别人写的业务代码问题时&#xff0c;重点是不是自己写的代码&#xff0c;只看到了数据库中落库最终数据&#xff0c;并不知道业务逻辑问题发生时数据库表中当时数据情况&#xff1f;如果能知…

虚拟机 NAT模式联网 重启断网的解决方法

1、虚拟机NAT模式联网 这个博客写的很清楚:按照他的方法可以ping通www.baidu.com 三分钟完成虚拟机联网 小白看了都说好&#xff01;&#xff01;&#xff01; 虚拟机超详细联网教程/步骤 SDN软件定义网络实验_虚拟机联网教程_九号迷妹的博客-CSDN博客 但是虚拟机重启几次之后…

九种分布式ID解决方案,总有一款适合你!

1、UUID 2、数据库自增ID 2.1、主键表 2.2、ID自增步长设置 3、号段模式 4、Redis INCR 5、雪花算法 6、美团(Leaf) 7、百度(Uidgenerator) 8、滴滴(TinyID) 总结比较 背景 在复杂的分布式系统中&#xff0c;往往需要对大量的数据进行唯一标识&#xff0c;比如在对…

2023牛客暑期多校训练营3

A.World Fragments I 将两个二进制数先转换成十进制数,因为只要二进制中有1,就加或减1(加减0是没有用的),所以求两个二进制的差的绝对值(这是在有1的情况下,其实只要不等于0就有1,数是非负整数) 所以需要特判,如果第一个二进制数为0,第二个二进制数不为0,那么就不能转化,输出…