• apache+tomcat+session(JK实现方式)


    测试的软件版本为:
    apache:2.2
    tomcat:5.5
    jk:mod_jk-1.2.30-httpd-2.2.3.so

    1.在httpd.conf底部加上
    LoadModule jk_module  modules/mod_jk.so#加载JK模块
    JkWorkersFile conf/workers.properties#tomcat工作配置
    JkLogFile logs/mod_jk.log#jk工作日志
    JkMount /*.jsp controller#url是.jsp结束的交给tomcat处理

    2.在conf目录新建workers.properties文件,添加内容worker.list=controller,t1,t2
    #========tomcat1========  
    worker.t1.port=8009         #ajp13 端口号,在tomcat下server.xml配  置,默认8009 
    worker.t1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址  
    worker.t1.type=ajp13  
    worker.t1.lbfactor = 1   #server的加权比重,值越高,分得的请求越多    
    #========tomcat2========  
    worker.t2.port=8010       #ajp13 端口号,在tomcat下server.xml配置,  
    worker.t2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址  
    worker.t2.type=ajp13  
    worker.t2.lbfactor = 1   #server的加权比重,值越高,分得的请求越多  
    #========controller,负载均衡控制器========  
    worker.controller.type=lb  
    worker.controller.balanced_workers=t1,t2   #指定分担请求的tomcat  
    worker.controller.sticky_session=false

    3.修改tomcat1的server.xml配置
    找到<Engine name="Catalina" defaultHost="localhost">后修改为
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="t1">
    把Cluster的注解注销掉,这里主要是为了tomcat的session同步

    4.修改tomcat2的server.xml配置
    找到<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> 后修改8009为8010
    找到<Engine name="Catalina" defaultHost="localhost">后修改为
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="t2">
    把Cluster 的注解注销掉,修改tcpListenPort 端口号为4002,这里主要是为了tomcat的session同步

    5.在tomcat1和tomcat2的server.xml中添加项目
    <Context docBase="D:/eclipse/workspace/lb/WebRoot" distributable="true" path="/xxx"/>
    注意两个tomcat中的path必须一致,不然会报错(Context manager doesn't exist).只有path一致,两个tomcat才能同步session

    6.注意事项:
    6.1  你的所有会话属性值必须实现java.io.Serializable (就是需要同步的bean必须要实现这个接口)
    6.2  在你的web项目的web.xml中加入 <distributable/>  或者在tomcat 的service.xml的项目配置中加入distributable="true" 例如:<Context docBase="D:/eclipse/workspace/lb/WebRoot" distributable="true" path="/xxx"/>
    6.3  如果两个tomcat在不同的物理机器上(不同的IP),必须保证时间一致,可以通过网络时间服务(NTP)同步操作系统的时间
    6.4 jk2版本已经被废除。
    6.5  tomcat5默认的session复制是现实了JVM内存中复制,在JVM内存中复制SESSION状态,使用tomcat5安装带的SimpleTcpCluster 和 SimpleTcpClusterManager 类.

  • 相关阅读:
    Python-http请求
    MacOs Big Sur 11.0.1 安装python报错
    linux 根据时间删除某个目录下的文件
    记一次文件上传遇到的坑(文件名|文件格式乱码)
    json_schema参数校验
    K8s
    python实时视频流播放
    pycharm永久激活
    客户端ajax请求为实现Token验证添加headers后导致正常请求变为options跨域请求解决方法
    webstorm修改文件,webpack-dev-server及roadhog不会自动编译刷新
  • 原文地址:https://www.cnblogs.com/chenzhao/p/2519162.html
Copyright © 2020-2023  润新知