• Nginx-Session缓存一致性-memcached


    1、三台tomcat选择其中一台安装memcached

    [root@asus bin]# yum install memcached -y

    2、检查memcached是否启动,未启动则启动

    [root@asus bin]# chkconfig
    auditd             0:off    1:off    2:on    3:on    4:on    5:on    6:off
    blk-availability    0:off    1:on    2:on    3:on    4:on    5:on    6:off
    ip6tables          0:off    1:off    2:on    3:on    4:on    5:on    6:off
    iptables           0:off    1:off    2:on    3:on    4:on    5:on    6:off
    iscsi              0:off    1:off    2:off    3:on    4:on    5:on    6:off
    iscsid             0:off    1:off    2:off    3:on    4:on    5:on    6:off
    lvm2-monitor       0:off    1:on    2:on    3:on    4:on    5:on    6:off
    mdmonitor          0:off    1:off    2:on    3:on    4:on    5:on    6:off
    memcached          0:off    1:off    2:off    3:off    4:off    5:off    6:off
    multipathd         0:off    1:off    2:off    3:off    4:off    5:off    6:off
    mysqld             0:off    1:off    2:off    3:off    4:off    5:off    6:off
    netconsole         0:off    1:off    2:off    3:off    4:off    5:off    6:off
    netfs              0:off    1:off    2:off    3:on    4:on    5:on    6:off
    network            0:off    1:off    2:on    3:on    4:on    5:on    6:off
    rdisc              0:off    1:off    2:off    3:off    4:off    5:off    6:off
    restorecond        0:off    1:off    2:off    3:off    4:off    5:off    6:off
    rsyslog            0:off    1:off    2:on    3:on    4:on    5:on    6:off
    saslauthd          0:off    1:off    2:off    3:off    4:off    5:off    6:off
    sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off
    udev-post          0:off    1:on    2:on    3:on    4:on    5:on    6:off
    vsftpd             0:off    1:off    2:off    3:off    4:off    5:off    6:off
    [root@asus bin]# service memcached start
    Starting memcached:                                        [  OK  ]

    3、web服务器连接memcached的jar包拷贝到tomcat的lib,下图用的是xftp4工具。

     其他两台tomcat采用scp远程复制,命令如下:

    [root@asus lib]# pwd
    /usr/soft/apache-tomcat-7.0.61/lib
    [root@asus lib]# scp * 192.168.111.240:`pwd`

    4、配置tomcat的conf目录下的context.xml

    [root@asus conf]# cat context.xml 
    <?xml version='1.0' encoding='utf-8'?>
    <Context>
        <!-- Default set of monitored resources -->
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
        <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
           memcachedNodes="n1:192.168.111.241:11211"
           sticky="true"
           lockingMode="auto"
           sessionBackupAsync="false"
           requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
           sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />
    </Context>

    5、修改Tomcat的ROOT目录下的index.jsp,先备份,再新建。

    [root@asus ROOT]# pwd
    /usr/soft/apache-tomcat-7.0.61/webapps/ROOT
    [root@asus ROOT]# ls
    asf-logo.png       bg-middle.png    bg-upper.png  index.jsp          tomcat.css  tomcat-power.gif
    asf-logo-wide.gif  bg-nav-item.png  build.xml     index.jsp.bak      tomcat.gif  tomcat.svg
    bg-button.png      bg-nav.png       favicon.ico   RELEASE-NOTES.txt  tomcat.png  WEB-INF
    [root@asus ROOT]# mv index.jsp index.jsp.bak
    [root@asus ROOT]# vim index.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
    <html lang="en">
    SessionID:<%=session.getId()%>
    </br>
    SessionIP:<%=request.getServerName()%>
    </br>
    <h1>tomcat2</h1>
    </html>

    其他两台tomcat的index.jsp也需要替换,注意将<h1>标签下的tomcat改成对应的标记。

    [root@asus ROOT]# scp index.jsp 192.168.111.240:`pwd`

    6、启动tomcat,三台都启动

    [root@asus bin]# ./startup.sh

    7、启动nginx

    [root@asus sbin]# pwd
    /usr/soft/nginx/sbin
    [root@asus sbin]# ./nginx

    8、浏览器访问三台tomcat

     

     查看到三台tomcat的sessionid都是一样的。

    9、访问Nginx,刷新,sessionid都一样

     以上是实现session一致性解决方案中的其中一种实现方式。

  • 相关阅读:
    你必须用角色管理工具安装Microsoft .NET Framework 3.5
    LINQ 小心Access to modified closure 问题
    .net BCL获取所有磁盘的信息
    对象的序列化和反序列化及其实现和使用
    对于CSDN博客文章不能爬取的问题
    IO与文件读写Java的IO流架构
    对象的深复制与浅复制 实现Cloneable接口实现深复制 序列化实现深复制
    博客园文章爬取代码
    【HtmlParser】HtmlParser使用
    爬虫简单示例,用httpClient4.2.1实现(转载)
  • 原文地址:https://www.cnblogs.com/yuanziren/p/13498918.html
Copyright © 2020-2023  润新知