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

[经验分享] LAMT+memcached实现session绑定

[复制链接]

尚未签到

发表于 2018-12-25 13:38:40 | 显示全部楼层 |阅读模式
  现今,互联网上,好多的公司为了网站的健壮性,都用了java做了框架,网页也都是JSP的,他们的服务器都采用了tomcat的架构,为了了解这种架构,下面我做了一个实验。   

  利用httpd在前端做代理,后端两个tomcat提供服务,我们还采用了NFS网络共享存储,MySQL服务器,为网站的数据一致性提供保障。

系统:CentOS 6.5

  地址说明:172.16.30.1是我们的惟一公网地址,192.168.160.0网段为内网地址
  

  搭建我们的tomcat服务器
  当我们的tomcat运行在Linux平台上时,它需要java的虚拟机JVM,这里,jdk就提供了java虚拟机
  在我们的前面两个节点上都安装JVM环境
[root@node1 ~]# rpm -ivh jdk-7u9-linux-x64.rpm
[root@node1 ~]# vim /etc/profile.d/jdk.sh     #将java程序加入到环境变量中
JAVA_HOME=/usr/java/latest
PATH=$JAVA_HOME/bin:$PATH
export  JAVA_HOME PATH
[root@node1 ~]# source /etc/profile.d/jdk.sh  在两个节点上安装tomcat服务
[root@node1 ~]# tar -zxf apache-tomcat-7.0.55.tar.gz -C /usr/local/
[root@node1 local]# ln -sv apache-tomcat-7.0.55  tomcat
[root@node2 local]# vim /etc/profile.d/tomcat.sh     #将tomcat的脚本文件加入到环境变量中去
export  CATALINA_HOME=/usr/local/tomcat
export  PATH=$CATALINA_HOME/bin:$PATH
[root@node2 local]# source /etc/profile.d/tomcat.sh  为tomcat提供启动脚本
[root@node1 local]# vim /etc/rc.d/init.d/tomcat
#!/bin/sh
# Tomcat init script for Linux.
#
# chkconfig: 2345 96 14
# description: The Apache Tomcat servlet/JSP container.
# JAVA_OPTS='-Xms64m -Xmx128m'
JAVA_HOME=/usr/java/latest
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME
case $1 in
start)
  exec $CATALINA_HOME/bin/catalina.sh start ;;
stop)
  exec $CATALINA_HOME/bin/catalina.sh stop;;
restart)
  $CATALINA_HOME/bin/catalina.sh stop
  sleep 2
  exec $CATALINA_HOME/bin/catalina.sh start ;;
*)
  echo "Usage: `basename $0` {start|stop|restart}"
  exit 1
  ;;
esac
[root@node1 local]# chmod +x /etc/rc.d/init.d/tomcat     #添加执行权限
[root@node1 local]# chkconfig –add tomcat  在tomcat的工作目录下创建test目录,并且提供主页和相关目录
  创建目录(两个节点都创建)
[root@node1 ~]# mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}  分别为两个节点提供主页
  node1:
[root@node1 ~]# vim /usr/local/tomcat/webapps/test/index.jsp


  node1
  
    node1.365lsy.com
   
      
        Session ID
   
        
      
      
        Created on
        
     
   
  
  node2:
[root@node2 ~]# vim /usr/local/tomcat/webapps/test/index.jsp


  node2
  
    node2.365lsy.com
   
      
        Session ID
   
        
      
      
        Created on
        
     
   
  
  此时,启动tomcat服务,分别在浏览器中访问这两台主机
[root@node1 ~]# service tomcat start


  此时,我们在前端使用httpd服务器分别调度到这两台tomcat服务器
  确保我们的httpd已经有proxy这个模块了
[root@localhost ~]# httpd -t -M | grep proxy     #确保有以下几个模块
proxy_module (shared)
proxy_balancer_module (shared)
proxy_http_module (shared)
proxy_ajp_module (shared)  添加配置文件,内容如下
[root@localhost ~]# vim /etc/httpd/conf.d/mod_proxy.conf

    BalancerMember ajp://192.168.160.129:8009 route=node1     #这里的route指定的名称在tomcat中指定
    BalancerMember ajp://192.168.160.130:8009 route=node2     #这里使用ajp的协议
    ProxySet lbmethod=byrequests

ProxyPass /  balancer://lb1/
ProxyPa***everse /  balancer://lb1/  重启我们的httpd服务,在浏览器中访问
[root@localhost ~]# service httpd restart


  为了使我们的后端tomcat服务器,不能被用户直接访问,我们应该将8080端口关闭,在两个tomcat节点上进行
[root@node1 ~]# vim /usr/local/tomcat/conf/server.xml
         #将此段注释掉,调试时,可以打开  并且添加此选项:

  httpd会将请求调度到后端的不同的tomcat服务器上,但是,如果,我们的是购物网站,如何实现session绑定呢?
  最好的方法就是session的服务器,我们在我们的两个tomcat服务器上安装memcached服务
[root@node2 ~]# yum install -y memcached  并将memcached启动
[root@node1 ~]# service memcached start  为tomcat提供下列的类文件(下列操作在两个tomcat节点上进行)
  javolution-5.5.1.jar
memcached-session-manager-1.8.2.jar
memcached-session-manager-tc7-1.8.2.jar
msm-javolution-serializer-1.8.2.jar
spymemcached-2.10.2.jar
  将上面的这些文件拷贝到tomcat的lib目录中
[root@node1 msm]# cp *.jar /usr/local/tomcat/lib/  然后,分别更改两个节点的配置文件
  添加如下选项:

  
  重启我们的tomcat服务,然后,再次访问查看session信息
[root@node1 ~]# service tomcat restart

  此时,session信息是完全一致的
  搭建NFS服务器,并启动服务
[root@node4 ~]# mkdir -pv /web/jcenter
[root@node4 ~]# vim /etc/exports
/web/jcenter    192.168.160.0/16(rw,no_root_squash)
[root@node4 ~]# service nfs start  提供jcenter程序包
[root@node4 ~]# tar xf JavaCenter_Home_2.0_GBK.tar.bz2 -C /web/jcenter/
[root@node4 jcenter]# cd JavaCenter_Home_2.0_GBK/
[root@node4 JavaCenter_Home_2.0_GBK]# mv * ./..
[root@node4 JavaCenter_Home_2.0_GBK]# cd ..
[root@node4 jcenter]# rm -rf JavaCenter_Home_2.0_GBK/
[root@node4 jcenter]# chmod -R 755 attachment/  然后,指定数据库的用户名和密码等信息
[root@node4 jcenter]# vim config.properties
dbHost = 192.168.160.131
dbPort = 3306
dbUser = jcenter
dbPw = jcenter
dbName = jcenter  搭建MySQL数据库,新建用户,并赋予权限
[root@node3 ~]# yum install -y mysql-server
[root@node3 ~]# service mysqld start  创建jcenter数据库
mysql> create database jcenter;
mysql> grant all on jcenter.* to jcenter@'192.168.160.%' identified by 'jcenter';
mysql>flush privileges;  回到我们的tomcat服务器,新建实例jcenter,在两个节点上都操作
[root@node1 ~]# mkdir -pv /usr/local/tomcat/webapps/jcenter
[root@node1 ~]# mount -t nfs 192.168.160.132:/web/jcenter /usr/local/tomcat/webapps/jcenter/  然后,再次更改tomcat的配置文件,两个节点都做修改
  #可以将原来的test改为jcenter
  

  重启tomcat服务
[root@node2 tomcat]# service tomcat restart  到浏览器中访问jcenter/install



    此时,我们的tomcat上的jcenter是能够正常工作的,无论怎么刷新,session信息都被绑定了,访问都不会被重新定向的,搭建session服务器,是保持用户session信息的一种非常好的方式
  





运维网声明 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-655750-1-1.html 上篇帖子: memcached精讲第二部 下篇帖子: LNMP+memcached平台的搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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