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

[经验分享] session共享机制(nginx+tomcat+memcached)

[复制链接]

尚未签到

发表于 2018-12-3 14:05:17 | 显示全部楼层 |阅读模式
  一、配置jdk环境java的编译环境------server2和server3同时配置
  
  jdk是JAVA的开发编译环境是java语言的软件开发工具包主要用于移动设备的嵌入式设备上的java应用程序
  
  jdk的安装基础过程
  1将jdk的包解压在指定路径 使用-C来指定路径
  2进入指定的路径给jdk解压后的目录做个软连接
  3编辑系统的环境变量使得java命令可以使用更改后让文件生效让环境变量文件即时生效使用source命令
  4编辑java测试文件编译执行
  
  1. get jdk-7u79-linux-x64.tar.gz -C /usr/local/(from 老吴)
  tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
  
  
  2. ln -s /usr/local/jdk1.7.0_79/ /usr/local/java##软链接方便版本升级
  
  
  3. vim /etc/profile##编辑系统的环境变量全局变量所有用户都可以用而~/.bash_profile是局部变量只针对某些用户加载才可以使用
  
  在配置文件末端加上
  export JAVA_HOME=/usr/local/java
  export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
  export PATH=$PATH:$JAVA_HOME/bin
  
  4. source /etc/profile##让更改在当前位置生效
  
  查看是否生效
  [root@server2 local]# echo $PATH
  /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin
  [root@server2 local]# echo $CLASSPATH
  .:/usr/local/java/lib:/usr/local/java/jre/lib
  
  5.写java证明环境配置是ok的
  [root@server2 ~]# vim test.java
  
  public class test {
  
          public static void main(String[] arge) {
                  System.out.println("Hello World!");
          }
  }
  
  [root@server2 ~]# javac test.java
  [root@server2 ~]# java test
  Hello World!
  
  
  
  二、安装tomcatjsp页面的解释------server2和server3同时配置
  
  Tomcat服务器是一个免费的开放源代码的web应用服务器其属于轻量级应用服务器很适合开发和调试jsp程序
  Tomcat是 Apache服务器的扩展但运行时它是独立运行的所以当tomcat运行时它实际上作为一个与Apache独立的进程单独运行的
  
  Tomcat 的安装很简单其基本步骤如下
  1从官网 down 一个安装包  例如apache-tomcat-7.0.37.tar.gz
  2解压 也可以在解压的时候加上你要解压到的目录等参数
  3进入tomcat的bin目录开启服务就好
  4测试可以编写一个测试页
  
  
  1.get apache-tomcat-7.0.37.tar.gz(from 老吴)
     tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
  
  
  2. ln -s /usr/local/apache-tomcat-7.0.37/ /usr/local/tomcat
  
  
  3. cd /usr/local/tomcat/bin/   
     ./startup.sh##开启tomcat服务
  
  4. netstat -antlp   #此时8080端口打开
  
  tcp        0      0 :::8080                     :::*                        LISTEN      1122/java
  
  
  5.cd /usr/local/tomcat/webapps/ROOT
     vim test.jsp
  
  the time is:
  
  
  在server3中
       tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
       ln -s /usr/local/apache-tomcat-7.0.37/ /usr/local/tomcat
       cd tomcat/bin/
       ./startup.sh
       netstat -antlp
  
  测试在网页搜索 172.25.78.2:8080/test.jsp
   https://s1.运维网.com/wyfs02/M00/9C/AD/wKioL1l0fKmC-piOAAIP0p9bSjE945.png
  

  
  
  
  三、session共享机制tomcat将缓存信息备份存在memcache中
  
  1.tomcat和nginx的使用
  
  [root@server1 conf]# cd /usr/local/lnmp/nginx/conf/
  [root@server1 conf]# /etc/init.d/php-fpm start
  Starting php-fpm  done
  [root@server1 conf]# nginx##开启服务
  [root@server1 conf]# vim nginx.conf
  [root@server1 conf]# nginx -t
  nginx: the configuration file /usr/local/lnmp/nginx/conf/nginx.conf syntax is ok
  nginx: configuration file /usr/local/lnmp/nginx/conf/nginx.conf test is successful
  [root@server1 conf]# nginx -s reload
  
  
  (18)
  http {
          upstream westos{
          ip_hash;##开启ip_hash固定一个主机访问的后端服务器
          server 172.25.39.2:8080;
          server 172.25.39.3:8080;
  }
  
   (90)   location ~ \.jsp$ {
                  proxy_pass http://westos;   ##所有以.jsp结尾的都转换
  
          }
  [root@server1 conf]# cat nginx.conf-----所有没有大规模注释的文件内容如下
  
  #user  nobody;
  worker_processes  2;
  worker_cpu_affinity 01 10;
  #error_log  logs/error.log;
  #error_log  logs/error.log  notice;
  #error_log  logs/error.log  info;
  
  #pid        logs/nginx.pid;
  
  
  events {
      worker_connections  65535;
  }
  
  
  http {
   upstream westos{
          ip_hash;
          server 172.25.78.2:8080;
          server 172.25.78.3:8080;
  }
  
  
      include       mime.types;
      default_type  application/octet-stream;
  
      sendfile        on;
      #tcp_nopush     on;
  
      #keepalive_timeout  0;
      keepalive_timeout  65;
  
      #gzip  on;
  
      server {
          listen       80;
          server_name  localhost;
  
          location / {
              root   html;
              index  index.php index.html index.htm;
          }
  
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
          }
  
       
  location ~ \.php$ {
      root           html;
      fastcgi_pass   127.0.0.1:9000;
      fastcgi_index  index.php;
    #  fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
      include        fastcgi.conf;
  }
  
  location ~ \.jsp$ {
                  proxy_pass http://westos;  
          }
  
       
      }
  
  
  
     server {
         listen       443 ssl;
         server_name  localhost;
  
         ssl_certificate      cert.pem;
         ssl_certificate_key  cert.pem;
  
         ssl_session_cache    shared:SSL:1m;
         ssl_session_timeout  5m;
  
         ssl_ciphers  HIGH:!aNULL:!MD5;
         ssl_prefer_server_ciphers  on;
  
         location / {
             root   html;
             index  index.html index.htm;
         }
     }
  
  server {
  listen 80;
  server_name www.westos.org;
  location / {
  
  proxy_pass http://westos;
  
  }
  }
  }
  
  
  测试页码的编写
  [root@server2 ~]# cd /usr/local/tomcat/webapps/ROOT/
  [root@server2 ROOT]# vim test.jsp
  内容从老吴文档复制
  
  
  Cluster App Test
  
  Server Info:
  
   0) {
  String dataValue = request.getParameter("dataValue");
  session.setAttribute(dataName, dataValue);
  }
  out.print("Session list");
  Enumeration e = session.getAttributeNames();
  while (e.hasMoreElements()) {
  String name = (String)e.nextElement();
  String value = session.getAttribute(name).toString();
  out.println( name + " = " + value+"");
  Enumeration e = session.getAttributeNames();
  while (e.hasMoreElements()) {
  String name = (String)e.nextElement();
  String value = session.getAttribute(name).toString();
  out.println( name + " = " + value+"");
  System.out.println( name + " = " + value);
  }
  %>
  
  name:
  
  key:
  
  
  
  
  
  
  
  scp test.jsp 172.25.39.3:/root/tomcat/webapps/ROOT##给3
  中复制相同的页
  
  
  
  
  ###nginx+tomcat+memcache####共享的实现
  1.
  get {---from 老吴
  asm-3.2.jar
  kryo-1.04.jar
  kryo-serializers-0.10.jar
  memcached-session-manager-1.6.3.jar
  memcached-session-manager-tc6-1.6.3.jar
  memcached-session-manager-tc7-1.6.3.jar
  minlog-1.2.jar
  msm-kryo-serializer-1.6.3.jar
  reflectasm-1.01.jar
  spymemcached-2.7.3.jar  }
  因为使用的tomcat是7的所以把6的删掉
  
  2.把这些东西放到/usr/local/tomcat/lib
  
  3.打开server2和server3的memc
  /etc/init.d/memecached start
  
  4. vim /usr/local/tomcat/conf/context.xml
  
  
  
  
  . \ / .
  .  X  .
  . / \ .
  
  
  Tomcat-1 (T1) 将 session 存储在 memcached-2 (T2)上。只有当 M2 不可用时,T1 才将 session 存储在 memcached-1 上(M1 是 T1 failoverNode)。使用这种配置的好处是,当 T1 和 M1 同时崩溃时也不会丢失 session 会话,避免单点故障。
  
  
  5. 打开tomcat服务
  /usr/local/tomcat/bin/startup.sh
  ##关闭服务
  /usr/local/tomcat/bin/shutdown.sh
  
  cd /usr/local/tomcat
  tail -f logs/catalina.out   试验服务打开是否成功
  
  (INFO: MemcachedSessionService finished initialization, sticky true, operation timeout 1000, with node ids [n1] and failover node ids [n2])证明成功
  
  
  6. yum install telnet -y两台都做-----telnet作用监控
  
  
  
  测试
  172.25.78.1/test.jsp
  telnet localhost 11211远程监控本地的11211端口 监控存储
  
  [root@server3 lib]# telnet localhost 11211
  Trying ::1...
  Connected to localhost.
  Escape character is '^]'.
  get 48844C8F70F022944863813004730A7E-n2
  VALUE 48844C8F70F022944863813004730A7E-n2 2048 136
  W]hB8]h01]h)]h)#48844C8F70F022944863813004730A7E-n2user2456user3789user8888usr1123
  END
  
   https://s3.运维网.com/wyfs02/M01/9C/AD/wKioL1l0fS6CYcA_AABEDRnK6Ng216.png-wh_500x0-wm_3-wmp_4-s_3916044427.png
  
  
  
  集群-----------------保证时间同步
  
  ricci是集群的管理工具
  一个客户端两个集群节点
  
  
  *********保证两个server纯净***********
  
  1.先重新配置yum把这些全部配置才能满足集群的需要
  
  yum里面的文件
  [HighAvailability]高可用
  name=HighAvailability
  baseurl=http://172.25.39.250/rhel6.5/HighAvailability
  gppcheck=0
  
  [LoadBalancer]负载均衡
  name=LoadBalancer
  baseurl=http://172.25.39.250/rhel6.5/LoadBalancer
  gpgcheck=0
  
  [ResilientStorage]存储
  name=ResilientStorage
  baseurl=http://172.25.39.250/rhel6.5/ResilientStorage
  gpgcheck=0
  
  [ScalableFileSystem]大文件系统支持
  name=ScalableFileSystem
  baseurl=http://172.25.39.250/rhel6.5/ScalableFileSystem
  gpgcheck=0
  
   yum repolist##更新yum
  *****************************************************   
  *repo id            repo name                 status
  *HighAvailability   HighAvailability             56
  *LoadBalancer       LoadBalancer                  4
  *ResilientStorage   ResilientStorage             62
  *ScalableFileSystem ScalableFileSystem            7
  *rhel6.5            Red Hat Enterprise Linux  3,690
  *repolist: 3,819
  *****************************************************
  
  2.安装 yum install -y ricci
     passwd ricci在企业六里面必须要给密码
  
  3. /etc/init.d/ricci start##开启服务
      chkconfig ricci on##开机自启动
  
  4.[root@server4 ~]# clustat##查看集群的状态
  Cluster Status for hahaha  @ Sat Jul 22 17:02:21 2017
  Member Status: Quorate
  
   Member Name              ID   Status
   ------ ----              ---- ------
   server1                      1 Online
   server4                      2 Online, Local
  
  
  5.相同配置server1
  
   a.vim /etc/yum.repos.d/rhel-source.repo
     yum repolist
  
   b. yum install -y ricci
      passwd ricci
     /etc/init.d/ricci start
     chkconfig ricci on
   c. yum install -y luci##图形操作界面-------测试的那个服务器安装就行(会发现全是用python写的)
     /etc/init.d/luci start
      chkconfig luci on##开机自启动
   d. clustat
  
  
  在浏览器
  https://172.25.39.1:8084----在哪个主机安装了luci用哪个主机测试





运维网声明 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-642908-1-1.html 上篇帖子: Apaache服务器和Tomcat服务器的区别 下篇帖子: SUSE enterprise 11 nginx+tomcat 部署JSP网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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