Tomcat实现session会话保持(三)

在后端用session server做session存储服务器

使用memcache做后端session server

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。这里主要是做为tomcat的session存储设备

实验架构图:

实验设备

操作系统:CentOS7.6
nginx IP:192.168.8.134
tomcat1 IP:192.168.8.160
tomcat2 IP:192.168.8.161
session server IP:192.168.8.162

环境准备

#清空防火墙规则
iptables -F
iptables -X

#临时设置关闭selinux
setenforce 0

#安装jdk,centos7的源默认最高支持jdk1.8
yum -y install java-1.8.0-openjdk-devel 

#更改主机名解析
vim /etc/hosts
192.168.8.161 tomcat2
192.168.8.160 tomcat1

实验部署步骤:

配置Nginx

安装并配置Nginx反向代理

[[email protected] ~]#yum -y instll nginx

修改nginx配置文件

[[email protected] ~]#vim /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;
}
upstream web {
        server 192.168.8.160:8080;
        server 192.168.8.161:8080;
}
server {
        listen 80 default_server;
        index index.jsp;
        location / {
                proxy_pass http://web/;
        }
}

检查无误后启动nginx

[[email protected] ~]#nginx -t
[[email protected] ~]#systemctl start nginx

配置tomcat1

安装tomcat以及对应的其他管理工具

[[email protected] ~]#yum -y install tomcat tomcat-lib tomcat-admin-webapps tomcat-webapps tomcat-docs-webapp

创建必要的文件夹

[[email protected] ~]#mkdir -pv /data/app/ROOT/{WEB-INF,META-INF,classes,lib}

编辑网页文件

[[email protected] ~]#vim /data/app/ROOT/index.jsp
<%@ page language="java" %>
        <html>
                <head><title>TomcatA</title></head>
                <body>
                        <h1><font color="red">TomcatA</font></h1>
            table align="centre" border="1">
                                <tr>
                                        <td>Session ID</td>
                                <% session.setAttribute("www.zd.com","www.zd.com"); %>
                                        <td><%= session.getId() %></td>
                                </tr>
                                <tr>
                    <td>Created on</td>
                    <td><%= session.getCreationTime() %></td>
                </tr>
            </table>
                </body>
        </html>

编辑tomcat配置文件

[[email protected] ~]#vim /etc/tomcat/server.xml
         <Context path="/" docBase="ROOT" reloadable="">
                <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
                                 #memcache的地址,可以指定多个IP
                 memcachedNodes="n1:192.168.8.162:11211"
                failoverNodes="n1"
                requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
                transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>

修改tomcat-users.xml配置文件

[[email protected] ~]#vim /etc/tomcat/tomcat-users.xml
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="www.test.com" roles="manager-gui,manager-script,admin-gui,admin-script"/>

把需要的软件包拷贝到/usr/share/java/tomcat下,可从GitHub上下载


启动tomcat服务

[[email protected] ~]#systemctl restart tomcat
[[email protected] ~]#systemctl enable tomcat

配置tomcat2

创建必要的目录

[[email protected] ~]#mkdir /data

从tomcat1上拷贝相关文件

[[email protected] ~]#scp -r /data/app/ 192.168.8.161:/data/
[[email protected] ~]#scp /etc/tomcat/server.xml 192.168.8.161:/etc/tomcat/server.xml
[[email protected] ~]#scp /etc/tomcat/tomcat-users.xml 192.168.8.161:/etc/tomcat/tomcat-users.xml
[[email protected] ~]#scp -r /usr/share/java/tomcat 192.168.8.161:/usr/share/java/tomcat

编辑网页文件

[[email protected] ~]#vim /data/app/ROOT/index.jsp
<%@ page language="java" %>
        <html>
                <head><title>TomcatB</title></head>
                <body>
                        <h1><font color="blue">TomcatB</font></h1>
            table align="centre" border="1">
                                <tr>
                                        <td>Session ID</td>
                                <% session.setAttribute("www.test.com","www.test.com"); %>
                                        <td><%= session.getId() %></td>
                                </tr>
                                <tr>
                    <td>Created on</td>
                    <td><%= session.getCreationTime() %></td>
                </tr>
            </table>
                </body>
        </html>

启动tomcat服务

[[email protected] ~]#systemctl restart tomcat
[[email protected] ~]#systemctl enable tomcat

配置session server

安装memcache

[[email protected] ~]#yum -y install memcached

更改配置文件

[[email protected] ~]#vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
#最大使用内存1024M
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

启动服务

[[email protected] ~]#systemctl enable memcached
[[email protected] ~]#systemctl start memcached

测试实验效果,可观察session始终一样

原文地址:https://blog.51cto.com/14163901/2413590

时间: 2024-10-09 18:29:27

Tomcat实现session会话保持(三)的相关文章

Nginx+LAT(apache+tomcat)的实现和使用memcached保存tomcat的session会话

Nginx+LAT(Apache+tomcat)的实现和Apache反向代理和负载均衡tomcat的不同方式以及使用memcached保存tomcat的session会话 一.Nginx+LAT(Apache+tomcat)的环境结构; 1.Nginx +Apache实现负载均衡用户请求至tomcat,其中Nginx是负载均衡调度器,Apache和tomcat在同一台机器上,Apache将关于JSP的请求发送至tomcat. 2.实验结构图: 3.环境介绍,在两台CentOS7上都安装Tomca

tomcat的session会话保持方案

基础知识 ?? tomcat ????tomcat是Apache软件基金会的Jakarta项目中的核心项目,最新的Servlet和JSP规范能够在Tomcat中很好的表现.作为一个免费的开放源代码的Web应用服务器,属于轻量级的应用服务器,在中小型系统和并发量不是很大的场景下被广泛使用,是开发和调试JSP代码的首选.实际上而言,tomcat是Apache服务器的拓展,但是可以独立运行,tomcat可以独立的去处理html和jsp页面.?? memcached ????Memcached 是一个高

tomcat实现session会话保持

基础知识 tomcat是Apache软件基金会的Jakarta项目中的核心项目,最新的Servlet和JSP规范能够在Tomcat中很好的表现.作为一个免费的开放源代码的Web应用服务器,属于轻量级的应用服务器,在中小型系统和并发量不是很大的场景下被广泛使用,是开发和调试JSP代码的首选.实际上而言,tomcat是Apache服务器的拓展,但是可以独立运行,tomcat可以独立的去处理html和jsp页面 session ?在计算机中,尤其是在网络应用中,称为"会话控制".Sessio

实现tomcat基于session会话保持

实验环境: 两台服务器,分别实现java 其中一台作为nginx代理 实验原理图: 一.实现java环境 1.实现java的运行环境 (1)安装 JDK 可以在网上下载包 yum  localinstall  jdk-8u144-linux-x64.rpm 2.下载tomcat包解压 tar xvf apache-tomcat-8.5.11.tar.gz mv apache-tomcat-7.0.78 /usr/local/tomcat 3.创建环境配置脚本 vim /etc/profile.d

tomcat基于session会话保持以及msm会话保持

实验一.基于tomcat集群会话保持 一.实验环境: 一台nginx服务器,两台tomcat集群,出于实验的原因,我就把nginx也放在其中一台的tomcat服务器上.也就是一共两台机器,都是centos7的环境. 二.实验原理: DeltaManager会话管理器是tomcat默认的集群会话管理器,它主要用于集群中各个节点之间会话状态的同步维护.集群增量会话管理器的职责是将某节点的会话该变同步到集群内其他成员节点上,它属于全节点复制模式,所谓全节点复制是指集群中某个节点的状态变化后需要同步到集

Tomcat实现session保持的三种方式、使用msm方式搭建jsp网站

Tomcat简单的来说类似于php的功能,主要实现java程序的编译,最后呈现给用户的是html格式的代码,使用用户可以在浏览器中访问.Tomcat是Java语言研发的,所以依赖于java的虚拟机(jvm). 一.使用前端调度器实现实现session保持 实现的原理如下图,会话保持使用前端的调度器实现.例如:使用Ngnix调度时,使用ip_hash算法就可以实现. 配置步骤: 1.安装配置 Tomcat 操作系统: CentOS 6,5 目标主机:172.16.10.122  172.10.10

Tomcat实现session会话保持(二)

在后端的的tomcat之上通过组播的方式实现session的共享 实验架构图: 环境准备 #清空防火墙规则 iptables -F iptables -X #临时设置关闭selinux setenforce 0 #安装jdk,centos7的源默认最高支持jdk1.8 yum -y install java-1.8.0-openjdk-devel #更改主机名解析 vim /etc/hosts 192.168.8.161 tomcat2 192.168.8.160 tomcat1 实验部署步骤:

图文并茂超详细搭建redis缓存服务器(nginx+tomcat+redis+mysql实现session会话共享)

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 一.redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会

Nginx+Memcached+Tomcat session会话共享

服务器说明: 192.168.1.8 tomcat1 memcached(虚拟机1) 192.168.1.9 tomcat2(虚拟机2) 192.168.1.200 nginx (本机) 对于tomcat+nginx的配置请参考博客:[Nginx-反向代理服务器]实践篇(三)之Tomcat+Nginx搭建集群 接下来我们来安装memcached,注意linux系统的用户权限问题 1.分别把memcached和libevent下载回来,放到/usr/src目录下: # cd /usr/src# w