首页 > 其他分享 >tomcat8+memcached session共享

tomcat8+memcached session共享

时间:2024-09-26 13:50:53浏览次数:7  
标签:index http tomcat root server session proxy memcached tomcat8

一、环境准备

tomcat8+memcached session共享_tomcat

时间同步(同步后确认各服务器时间是否一致,不一致需要修改一下时区)

关闭防火墙

软件包和jar包链接:https://pan.baidu.com/s/1sl9Nob7

 

二、安装配置nginx和memcached

Nginx和memcached使用yum安装即可,下面是nginx配置文件内容

user  nginx;
worker_processes  1;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    gzip  on;
    upstream tomcat-web {
      server 192.168.0.14:8080;
      server 192.168.0.15:8080;
       }
    server {
        listen       80;
        server_name  www.tomcat.com;


        location / {
            root   html;
            index  index.html index.htm index.jsp;
        }
        location ~* \.(jsp|do)$ {
                proxy_pass http://tomcat-web;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
                   }
       location /nginx_status {
                stub_status on;
                access_log off;
                allow 192.168.0.0/24;
                deny all;
                }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

nginx.conf

分别启动nginx和memcached

 

三、安装配置tomcat

安装步骤忽略

下载jar包至各tomcat节点的tomcat安装目录下的lib目录中

tomcat8+memcached session共享_memcached_02

分别在两个tomcat上的某host上定义一个用于测试的context容器,并在其中创建一个会话管理器,如下所示:

[root@tomcat-server-1 ~]# vim /usr/local/tomcat/conf/server.xml
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context path="/test" docBase="/usr/local/tomcat/webapps/test" reloadable="true">
            <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
                     memcachedNodes="n1:192.168.0.12:11211,n2:192.168.0.13:11211" #n1代表memcached的名称,后面为具体的ip地址
                     failoverNodes="n1"
                     requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
                     transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
                        />
             </Context>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />

      </Host>

提供测试页面

tomcat-server-1

[root@tomcat-server-1 lib]# mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}
[root@tomcat-server-1 lib]# vim /usr/local/tomcat/webapps/test/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("tomcat","tomcat"); %>
        <td><%= session.getId() %></td>
      </tr>
      <tr>
        <td>Created on</td>
        <td><%= session.getCreationTime() %></td>
     </tr>
    </table>
  </body>
</html>

 tomcat-server-2

[root@tomcat-server-2 lib]# mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}
[root@tomcat-server-2 lib]#  vim /usr/local/tomcat/webapps/test/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("tomcat","tomcat"); %>
        <td><%= session.getId() %></td>
      </tr>
      <tr>
        <td>Created on</td>
        <td><%= session.getCreationTime() %></td>
     </tr>
    </table>
  </body>
</html>

重启两台tomcat,并用浏览器进行访问

tomcat8+memcached session共享_memcached_03

tomcat8+memcached session共享_memcached_04

测试结果,在浏览器中访问http://www.tomcat.com/test/index.jsp,结果如上所示,其session ID在负载均衡环境中保持不变。

 

"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少



标签:index,http,tomcat,root,server,session,proxy,memcached,tomcat8
From: https://blog.51cto.com/u_8901540/12118786

相关文章

  • 【web】Cookie/Session
    会话:用户打开了一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程称之为会话有状态会话:记录曾经来过一个网站怎么证明你来过客户端  服务器1,服务端给客户端一个信件,客户端下次访问服务端得时候带上信件即可;cookie2,服务器登记你来过了,下次来得时候我来匹配......
  • python爬虫连载26 Cookie和Session
    Cookie和SessionHTTP是无状态的,Cookie和Session则对此作了补充。其中Cookie是保存在客户端,Session保存在服务器端。Cookie是由服务器生成后发送给客户端的,浏览器会解析这些Cookie并将Cookie保存为一个本地文件,浏览器会自动将同一个服务器的任何请求绑定上这些Cookie。Cookie的工作......
  • Mobaxterm 解除session创建限制
    Mobaxterm版本为20.2去除限制步骤1下载github上面的一个开源小项目gitclonehttps://github.com/flygon2018/MobaXterm-keygen.git下载下来后cdMobaXterm-keygenpython3MobaXterm-Keygen.py<UserName><Version>UserName我填的是windows的登录用户名,Version填自己安......
  • Mobaxterm 解除session创建限制
    Mobaxterm版本为20.2去除限制步骤1下载github上面的一个开源小项目gitclonehttps://github.com/flygon2018/MobaXterm-keygen.git下载下来后cdMobaXterm-keygenpython3MobaXterm-Keygen.py<UserName><Version>UserName我填的是windows的登录用户名,Versi......
  • token是用来鉴权的,那session是用来干什么的?
    使用JWT进行用户认证和授权,而Session在一定程度上起到了辅助作用。让我们详细讨论JWT和Session在这种结合模式中的各自作用以及为什么需要Session。JWT的作用用户认证: JWT包含了用户的身份信息和权限信息,客户端每次请求时将JWT发送给服务器,服务器通过验证JWT来确认用户身份。无状......
  • Session
    SessionSession的使用一般依赖于Cookie,将一些数据不再发送值浏览器,而是保存的后端的服务器上。1使用Session到底要存储到哪里?默认数据库。INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes',#'django.......
  • 【整理】【java开发】JavaWeb之JSP、Cookie、Session(一)
    一、JSP介绍及原理1.1JSP简介1.2JSP简单入门1.3JSP原理介绍二、JSP脚本2.1JSP脚本形式2.2JSPEL表达式2.3JSPJSTL标签三、会话跟踪技术3.1Cookie3.2Session原创0xNvyao安全随笔声明请勿利用本公众号文章内的相关......
  • Flask session cookie 失效在Safari中的解决方法
    Flask会默认使用客户端会话管理,数据存储在浏览器的cookie中。这种方法通常在各种浏览器中工作良好,但有时可能会在Safari中遇到sessioncookie失效的问题,特别是使用了iOS或macOS上的Safari。这个问题常见的原因是Safari中的隐私设置,尤其是涉及到“防止跨站追踪”和第......
  • JWT和Session结合模式中的作用
    使用JWT进行用户认证和授权,而Session在一定程度上起到了辅助作用。让我们详细讨论JWT和Session在这种结合模式中的各自作用以及为什么需要Session。JWT的作用用户认证: JWT包含了用户的身份信息和权限信息,客户端每次请求时将JWT发送给服务器,服务器通过验证JWT来确认用户身份......
  • 配置PHP的Session存储到Mysql / Redis / memcache 以及使用opcache以及apc缓存清除工
    一、配置PHP的Session存储到Mysql,Redis以及memcache等        PHP的会话默认是以文件的形式存在的,可以通过简单的配置到将Session存储到NoSQL中,即提高了访问速度,又能很好地实现会话共享!1.默认配置:session.save_handler=filessession.save_path=/tmp/2.配......