设为首页 收藏本站
查看: 1045|回复: 0

[经验分享] nginx+tomcat+memcache 缓存session配置

[复制链接]

尚未签到

发表于 2018-12-3 11:12:38 | 显示全部楼层 |阅读模式
  首先先看下实验拓扑:

  
  一、安装节点1
  1、同步时间
  ntpdate time.windows.com
  service httpd stop
  2、安装nginx
  tar -xvf nginx-1.6.1.tar.gz  -C /usr/local/
  cd /usr/local/cd nginx-1.6.1/
  useradd nginx -s /sbin/nologin
  yum -y install pcre-devel openssl-devel
  ./configure -prefix=/usr/local/nginx   --sbin-path=/usr/sbin/nginx   --conf-path=/etc/nginx/nginx.conf   --error-log-path=/var/log/nginx/error.log   --http-log-path=/var/log/nginx/access.log   --pid-path=/var/run/nginx/nginx.pid    --lock-path=/var/lock/nginx.lock   --user=nginx   --group=nginx   --with-http_ssl_module   --with-http_flv_module   --with-http_stub_status_module   --with-http_gzip_static_module   --http-client-body-temp-path=/var/tmp/nginx/client/   --http-proxy-temp-path=/var/tmp/nginx/proxy/   --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/   --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi   --http-scgi-temp-path=/var/tmp/nginx/scgi   --with-pcre
  make && make install
  
  mkdir -pv /var/tmp/nginx/client
  /usr/sbin/nginx
  
  2、安装jdk
  tar -xvf jdk-8u20-linux-i586.tar.gz -C /usr/local/
  vim /etc/profile
  . /etc/profile
  [root@nginx-node3 ~]# java -version
  java version "1.8.0_20"
  Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
  Java HotSpot(TM) Client VM (build 25.20-b23, mixed mode)
  
  如果出现/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory,安装下glic即可
  sudo yum install glibc.i686
  
  3、安装tomcat
  tar -xvf apache-tomcat-8.0.12.tar.gz -C /usr/local/
  cd /usr/local/
  mv apache-tomcat-8.0.12/ tomcat
  /usr/local/tomcat/bin/catalina.sh start
  4、验证nginx和tomcat

  


  
  

  
  5、配置节点2
  jdk和tomcat同节点一的安装方法一样就不过多叙述了
  
  二、先配置下负载均衡
  1、配置nginx修改负载均衡,并且设置所有以.jsp结尾的都交给tomcat处理
  # egrep -v "^*#|^$" /etc/nginx/nginx.conf
  worker_processes  1;
  events {
      worker_connections  1024;
  }
  http {
      include       mime.types;
      default_type  application/octet-stream;
      sendfile        on;
      keepalive_timeout  65;
      upstream tomcat.com {
      server 192.168.1.126:8080;
      server 192.168.1.127:8080;
      }
      server {
          listen       80;
          server_name  localhost;
          location / {
              root   html;
              index  index.html index.htm ;
          }
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
          }
          
          location ~ \.jsp$ {
             proxy_pass        http://tomcat.com;
             proxy_set_header  X-Real-IP $remote_addr;
          }
      }
  }
  2、分别设置节点1和节点2tomcat的index.jsp页面,2节点只需要改成blue 和tomcatB就好
  # vim /usr/local/tomcat/webapps/ROOT/index.jsp
  
    TomcatA
    
      TomcatA
     
        
          Session ID
          
        
        
          Created on
          
       
     
    
  
  3、访问nginx看是否有负载均衡,下面看下效果
  



  

  

  可以看到已经负载均衡了,但是session ID还是没有共享的,这是memcache就要登场了
  
  三、下面在2节点上安装memcache
  1、直接安装memcache
  tar -xvf memcached-1.4.20.tar.gz -C /usr/local/
  cd /usr/local/memcached-1.4.20/
  yum -y install libevent-devel
  ./configure --prefix=/usr/local/memcache
  make && make install
  2、配置tomcat连接memcache,这里用的是memcached-session-manager
  参考网站:
  http://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration
  
  3、准备的jar包
  注意:不同的tomcat版本(tomcat6,tomcat7,tomcat8)所需的包不一样,需要针对tomcat版本下载对应的包.
  这是采用的javolution的序列化方式所有需要的包:

  

  这是采用的javolution的序列化方式所有需要的包:

  建议采用kryo序列化方式,效率更高。
  4、把kryo所有的包考到Tomcat的lib目录下,这些包都是msm所依赖的包。
  [root@nginx-node3 ~]# ll kryo/
  total 868
  -rw-r--r-- 1 root root  43398 Sep 24 13:32 asm-3.2.jar
  -rw-r--r-- 1 root root  94830 Sep 24 13:31 kryo-1.04.jar
  -rw-r--r-- 1 root root  62112 Sep 24 13:31 kryo-serializers-0.11.jar
  -rw-r--r-- 1 root root 147019 Sep 24 13:01 memcached-session-manager-1.8.2.jar
  -rw-r--r-- 1 root root  10407 Sep 24 13:12 memcached-session-manager-tc8-1.8.2.jar
  -rw-r--r-- 1 root root   4879 Sep 24 13:31 minlog-1.2.jar
  -rw-r--r-- 1 root root  29329 Sep 24 13:31 msm-kryo-serializer-1.8.2.jar
  -rw-r--r-- 1 root root  11615 Sep 24 13:32 reflectasm-1.01.jar
  -rw-r--r-- 1 root root 464756 Sep 24 13:19 spymemcached-2.11.4.jar
  [root@nginx-node3 ~]# cp kryo/* /usr/local/tomcat/lib/
  
  5、memcache启动
  /usr/local/memcache/bin/memcached -d -m 128 -l 192.168.1.127 -p 11211 -u root
  /usr/local/memcache/bin/memcached -d -m 128 -l 192.168.1.127 -p 11311 -u root

  

  之后可以telnet测试一下,下面是memcached启动命令参数详解
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB
-u是运行Memcache的用户,我这里是root
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcachepid文件,我这里是保存在 /tmp/memcached.pid
-p 使用的TCP端口。默认为11211
-m 最大内存大小。默认为64M
-vv 用very vrebose模式启动,调试信息和错误输出到控制台
-d 作为daemon在后台启动
  
  
  
  6、下面修改tomcat配置文件,让tomcat结合memcache实现session共享
  
  
  ...  
          
  ...
  
说明:
这里的memcachedNodes是填写memcached节点,多个节点时可以以空隔分开,如:
n1:localhost:11211 n2:localhost:11212     /localhost改为安装memcached的服务器的IP
  
  重启2个节点的tomcat,可以看到启动日志没有报错即可

  
  7、下面可以看到,是负载轮询的,但是sessinID是一直不变的这样就达到实验目的了:


  





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

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-642750-1-1.html 上篇帖子: maven项目放入tomcat中找不到jar包 下篇帖子: tomcat应用连接数据库超时
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


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


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



合作伙伴: 青云cloud

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