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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

 

目录

一、服务器配置

二、安装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类型的数据同时还提供listsetzsethash等数据结构的存储。

安装部署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

 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: redis服务器