设为首页 收藏本站

运维网

查看: 224|回复: 0

[经验分享] nginx+tomcat8+memcached实现session共享

[复制链接]

尚未签到

发表于 2018-11-9 10:09:55 | 显示全部楼层 |阅读模式
  安装nginx-1.13.8
  安装jdk1.8.0_144
  安装tomcat-8.5.24
  安装memcached-1.4.15
  下载tomcat8连接memcached所需jar包
  官方参考资料:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration#decide-which-serialization-strategy-to-use
  配置nginx
  以下是我的主配置文件,请根据自己情况进行修改
  worker_processes  1;
  events {
  worker_connections  1024;
  }
  http {
  include       mime.types;
  default_type  application/octet-stream;
  sendfile        on;
  keepalive_timeout  65;
  upstream tomcat_nginx {
  server 192.168.3.58:8080;
  server 192.168.3.54:8080;
  server 192.168.3.31:8080;
  }
  server {
  listen       80;
  server_name  localhost;
  location / {
  proxy_pass http://tomcat_nginx;
  }
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
  root   html;
  }
  }
  }
  配置nginx的启动脚本
  #! /bin/bash
  # Description: Startup script for webserver on CentOS. cp it in /etc/init.d and
  # chkconfig --add nginx && chkconfig nginx on
  # then you can use server command control nginx
  #
  # chkconfig: 2345 08 99
  # description: Starts, stops nginx
  set -e
  PATH=$PATH:/usr/local/nginx/sbin/
  DESC="nginx daemon"
  NAME=nginx
  DAEMON=/usr/local/nginx/sbin/$NAME
  CONFIGFILE=/usr/local/nginx/conf/nginx.conf
  #PIDFILE=/var/run/nginx.pid
  PIDFILE=/usr/local/nginx/logs/nginx.pid
  SCRIPTNAME=/etc/init.d/$NAME
  # Gracefully exit if the package has been removed.
  test -x $DAEMON || exit 0
  d_start() {
  $DAEMON -c $CONFIGFILE || echo -n " already running"
  }
  d_stop() {
  kill -QUIT `cat $PIDFILE` || echo -n " not running"
  }
  d_reload() {

  kill -HUP `cat $PIDFILE` || echo -n " can't>  }
  case "$1" in
  start)
  echo -n "Starting $DESC: $NAME"
  d_start
  echo "."
  ;;
  stop)
  echo -n "Stopping $DESC: $NAME"
  d_stop
  echo "."
  ;;
  reload)
  echo -n "Reloading $DESC configuration..."
  d_reload
  echo "reloaded."
  ;;
  restart)
  echo -n "Restarting $DESC: $NAME"
  d_stop
  sleep 1
  d_start
  echo "."
  ;;
  *)
  echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
  exit 3
  ;;
  esac
  exit 0
  启动nginx
  编写tomcat的测试页面,一下是两种格式的,都可以用(放在webapps/ROOT/)
  
  
  
  
  192.168.3.31
  port:8080
  this is tomcat 1!
  
  
  
  SessionID:
  SessionIP:
  SessionPort:
  
  启动tomcat
  tomcat访问测试
DSC0000.jpg DSC0001.jpg

  nginx访问测试
DSC0002.jpg DSC0003.jpg

  tomcat8+memcached实现会话共享
  下载jar包
  不同版本的tomcat使用的jar包可能会有区别,本测试使用的是tomcat-8.5.24
  jar包详细列表及tomcat(注:jedis-2.9.0.jar是连接redis的jar包)
DSC0004.jpg

  修改conf/context.xml(每个tomcat)
  这里是 non-sticky sessions + kryo,建议参考官方文档:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
  
  WEB-INF/web.xml
  ${catalina.base}/conf/web.xml

    memcachedNodes="n1:192.168.3.31:11211"
  sticky="false"
  sessionBackupAsync="false"
  lockingMode="none"
  requestUriIgnorePattern=".*\.(ico|png|gif|jpg|jpeg|css|js)$"
  sessionBackupTimeout="1000"
  transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
  />
  
  memcachedNodes是指定memcached,可以有多个节点,n1是标签,其他的靠猜
  启动memcached,重启tomcat
  访问测试
DSC0005.jpg DSC0006.jpg DSC0007.jpg DSC0008.jpg DSC0009.jpg DSC00010.jpg

  使用redis代替memcached
  上面jar包里面jedis-2.9.0.jar就是连接redis的jar包,详情看官方的解释
  测试失败(⊙﹏⊙)b
  
  一堆版本不兼容的问题,尝试所有的jar包都用最新的结果不行
  报错
DSC00011.jpg

  缺少jar包或版本冲突
  参考:  https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration#decide-which-serialization-strategy-to-use
  https://wenku.baidu.com/view/caecc5cf6037ee06eff9aef8941ea76e58fa4abd.html


运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@yunvn.com 网址:www.iyunv.com

点击关注更多内容
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则  允许回帖邮件提醒楼主

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服 E-mail:kefu@yunvn.com

本站由青云提供云计算服务

运维网--中国最专业的运维工程师交流社区

京ICP备14039699号-1 Copyright © 2012-2020

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

Good good study day day up !


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!


独家合作伙伴: 青云cloud

快速回复 返回顶部 返回列表