设为首页 收藏本站
查看: 1426|回复: 1

[经验分享] 38 tomcat lb cluster、memcached和msm、msm及jvm虚拟机性能监控、tcpdump和nc工具的使用

[复制链接]

尚未签到

发表于 2018-12-26 07:27:34 | 显示全部楼层 |阅读模式
  01tomcat lb cluster
  

  配置环境
  node1192.168.1.131CentOS 7.2
  node4192.168.1.132CentOS 7.2
  node3192.168.1.133CentOS 7.2
  

  1、如何部署多个tomcat实例向用户提供服务
  

  #node4结点配置tomcat
  [root@node4 ~]# tar xf apache-tomcat-8.0.38.tar.gz -C /usr/local/
  [root@node4 ~]# cd /usr/local/
  [root@node4 local]# ln -s apache-tomcat-8.0.38/ tomcat
  [root@node4 local]# vim /etc/profile.d/tomcat.sh
  export CATALINA_HOME=/usr/local/tomcat
  export PATH=$CATALINA_HOME/bin:$PATH
  [root@node4 local]# . /etc/profile.d/tomcat.sh
  [root@node4 local]# catalina.sh version
  [root@node4 local]# mkdir -p /data/webapps/ROOT
  [root@node4 local]# cd tomcat/conf/
  [root@node4 conf]# cp server.xml{,.bak}
  [root@node4 conf]# vim server.xml
  修改
  
  
  
  添加Host主机
    
  
  
    
    
  [root@node4 conf]# mkdir /data/logs
  [root@node4 conf]# catalina.sh configtest
  [root@node4 conf]# mkdir -p /data/webapps/ROOT/{lib,classes,META-INF,WEB-INF}
  [root@node4 conf]# vim /data/webapps/ROOT/index.jsp
  
  
  
  
  JSP Test Page on Web1
  
  
  
  
       
  [root@node4 conf]# catalina.sh start
  [root@node4 conf]# cat /etc/hosts
  127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
  ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  192.168.1.131   node1   node1.magedu.com
  192.168.1.132   node4   node4.magedu.com
  192.168.1.133   node3   node3.magedu.com
  

  [root@node4 conf]# curl node4.magedu.com:8080
  

  #node3结点配置tomcat
  [root@node4 ~]# scp apache-tomcat-8.0.38.tar.gz node3:/root
  [root@node4 ~]# scp -rp /data/ node3:/data
  [root@node3 ~]# tar xf apache-tomcat-8.0.38.tar.gz -C /usr/local/
  [root@node3 ~]# cd /usr/local/
  [root@node3 local]# ln -s apache-tomcat-8.0.38/ tomcat
  [root@node4 ~]# cd /usr/local/tomcat/conf/
  [root@node4 conf]# scp server.xml node3:/usr/local/tomcat/conf/
  [root@node3 local]# cd tomcat/conf/
  [root@node3 conf]# vim server.xml
  修改
  
  
  
  修改
  node4.magedu.com
  
  node3.magedu.com
  [root@node4 conf]# scp /etc/profile.d/tomcat.sh node3:/etc/profile.d/
  [root@node3 conf]# . /etc/profile.d/tomcat.sh
  [root@node3 conf]# catalina.sh start
  [root@node1 ~]# curl node3.magedu.com:8080
  [root@node3 conf]# vim /data/webapps/ROOT/index.jsp
  
  
  
  
  JSP Test Page on Web1
  
  
  
  
       
  

  

  [root@node1 ~]# yum -y install nginx
  [root@node1 ~]# cd /etc/nginx/
  [root@node1 nginx]# cp nginx.conf{,.bak}
  [root@node1 nginx]# vim nginx.conf
  在server段前添加
  upstream tcsrvs {
      ip_hash;#对客户端锁定服务器
  server node4.magedu.com:8080;
  server node3.magedu.com:8080;
  }
  在server段内添加
  location ~* \.(jsp|do)$ {
  proxy_pass http://tcsrvs;
  }
  [root@node1 nginx]# nginx -t
  [root@node1 nginx]# systemctl start nginx.service
  

  2、如何使用httpd反代用户请求
  (1)方法一
  apache:
  mod_proxy
  mod_proxy_http
  mod_proxy_balancer
  tomcat:
  http connector
  
  [root@node1 nginx]# systemctl stop nginx.service
  [root@node1 nginx]# systemctl disable nginx.service
  [root@node1 nginx]# yum -y install httpd
  [root@node1 ~]# cd /etc/httpd/conf
  [root@node1 conf]# vim httpd.conf
  注释掉
  #DocumentRoot "/var/www/html"
  [root@node1 conf]# cd ../conf.d/
  [root@node1 conf.d]# vim vhost.conf
  
  BalancerMember http://192.168.1.132:8080 loadfactor=10 route=TomcatA
  BalancerMember http://192.168.1.133:8080 loadfactor=10 route=TomcatB
  
  
  ServerName web1.magedu.com
  ProxyVia On
  ProxyRequests Off
  ProxyPreserveHost On
  
  Require all granted
  
  ProxyPass / balancer://lbcluster1/
  ProxyPa***everse / balancer://lbcluster1/
  
  Require all granted
  
  
  
  如果需要会话绑定,可使用下面的内容:
  Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e;path=/" env=BALANCER_ROUTE_CHANGED
  
  BalancerMember http://192.168.1.132:8080 loadfactor=10 route=TomcatA
  BalancerMember http://192.168.1.133:8080 loadfactor=10 route=TomcatB
  ProxySet stickysession=ROUTEID
  
  
  ServerName web1.magedu.com
  ProxyVia On
  ProxyRequests Off
  ProxyPreserveHost On
  
  Require all granted
  
  ProxyPass / balancer://lbcluster1/
  ProxyPa***everse / balancer://lbcluster1/
  
  Require all granted
  
  
  
  [root@node1 conf.d]# systemctl start httpd.service
  
  [root@node4 conf]# vim server.xml
  修改
  
  
  
  [root@node3 conf]# vim server.xml
  修改
  
  
  
  [root@node4 conf]# catalina.sh stop
  [root@node3 conf]# catalina.sh stop
  

  [root@node4 conf]# vim /data/webapps/ROOT/index.jsp
  
  
    TomcatA
    
  TomcatA.magedu.com
  
    
  Session ID
  
  
    
    
  Created on
  
  
  
    
  
  [root@node3 conf]# vim /data/webapps/ROOT/index.jsp
  
  
    TomcatB
    
  TomcatB.magedu.com
  
    
  Session ID
  
  
    
    
  Created on
  
  
  
    
  
  [root@node4 conf]# catalina.sh start
  [root@node3 conf]# catalina.sh start
  
  测试
  http://192.168.1.131/index.jsp
  结果:成功
  
  (2)方法二
  apache:
  mod_proxy
  mod_proxy_ajp
  mod_proxy_balancer
  tomcat:
  http connector
  

  [root@node1 conf.d]# cp vhost.conf vhost.ajp.conf
  [root@node1 conf.d]# mv vhost.conf vhost.http.conf.bak
  [root@node1 conf.d]# vim vhost.ajp.conf
  #Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e;path=/" env=BALANCER_ROUTE_CHANGED
  
  BalancerMember ajp://192.168.1.132:8009 loadfactor=10 route=TomcatA
  BalancerMember ajp://192.168.1.133:8009 loadfactor=10 route=TomcatB
  #ProxySet stickysession=ROUTEID
  
  
  ServerName web1.magedu.com
  ProxyVia On
  ProxyRequests Off
  ProxyPreserveHost On
  
  Require all granted
  
  ProxyPass / balancer://lbcluster1/
  ProxyPa***everse / balancer://lbcluster1/
  
  Require all granted
  
  
  [root@node1 conf.d]# systemctl restart httpd.service
  

  (3)方法3
  apache
  mod_jk
  tomcat:
  ajp connector
  
  [root@node1 ~]# tar xf tomcat-connectors-1.2.42-src.tar.gz
  [root@node1 ~]# cd tomcat-connectors-1.2.42-src/native/
  [root@node1 native]# yum -y install httpd-devel gcc glibc-devel
  [root@node1 native]# which apxs
  /usr/bin/apxs
  [root@node1 native]# ./configure --with-apxs=/usr/bin/apxs
  [root@node1 native]# make -j 4 && make install
  [root@node1 native]# cd /etc/httpd/
  

  02tomcat lb cluster
  

  1、jk_mod:额外编译安装
  

  (1)反向代理
  [root@node1 ~]# cd /etc/httpd/conf.d/
  [root@node1 conf.d]# mv vhost.ajp.conf{,.bak}
  [root@node1 conf.d]# vim mod_jk.conf
  LoadModule jk_module modules/mod_jk.so
  JkWorkersFile  /etc/httpd/conf.d/workers.properties
  JkLogFile  logs/mod_jk.log
  JkLogLevel  debug
  JkMount  /*  TomcatA
  JkMount  /status/  stat1
  [root@node1 conf.d]# vim /etc/httpd/conf.d/workers.properties
  worker.list=TomcatA,stat1
  worker.TomcatA.port=8009
  worker.TomcatA.host=192.168.1.132
  worker.TomcatA.type=ajp13
  worker.TomcatA.lbfactor=1
  worker.stat1.type = status
  [root@node1 conf.d]# httpd -t
  [root@node1 conf.d]# systemctl restart httpd.service
  

  (2)负载均衡
  [root@node1 ~]# cd /etc/httpd/conf.d/
  [root@node1 conf.d]# vim mod_jk.conf
  LoadModule jk_module modules/mod_jk.so
  JkWorkersFile  /etc/httpd/conf.d/workers.properties
  JkLogFile  logs/mod_jk.log
  JkLogLevel  debug
  JkMount  /*  lbcluster1
  JkMount  /status/  stat1
  [root@node1 conf.d]# vim /etc/httpd/conf.d/workers.properties
  worker.list = lbcluster1,stat1
  worker.TomcatA.type = ajp13
  worker.TomcatA.host = 192.168.1.132
  worker.TomcatA.port = 8009
  worker.TomcatA.lbfactor = 1
  worker.TomcatB.type = ajp13
  worker.TomcatB.host = 192.168.1.133
  worker.TomcatB.port = 8009
  worker.TomcatB.lbfactor = 1
  worker.lbcluster1.type = lb
  worker.lbcluster1.sticky_session = 0
  worker.lbcluster1.balance_workers = TomcatA, TomcatB
  worker.stat1.type = status
  
  注:如果要实现会话绑定,可以设置worker.lbcluster1.sticky_session = 1
  [root@node1 conf.d]# httpd -t
  [root@node1 conf.d]# systemctl restart httpd.service
  
  2、Balancer内置管理功能
  [root@node1 conf.d]# systemctl stop httpd.service
  [root@node1 conf.d]# mv mod_jk.conf{,.bak}
  [root@node1 conf.d]# cp vhost.ajp.conf.bak vhost.ajp.conf
  [root@node1 conf.d]# vim vhost.ajp.conf
  添加
  
  SetHandler balancer-manager
  ProxyPass !
  Require all granted
  
  [root@node1 conf.d]# systemctl restart httpd.service
  

  3、Session Cluster
  [root@node4 conf]# catalina.sh stop
  [root@node4 ~]# cd /usr/local/tomcat/conf/
  [root@node4 conf]# vim server.xml
  在Host内部添加
  
  

    
  

    
  
  
  

  
    
  
  
  
    
  

    
    
  

    
  

    
  
  

  [root@node3 conf]# catalina.sh stop
  [root@node3 ~]# cd /usr/local/tomcat/conf/
  [root@node3 conf]# vim server.xml
  在Host内部添加
  
  

    
  

    
  
  
  

  
    
  
  
  
    
  

    
    
  

    
  

    
  
  

  [root@node4 conf]# cp web.xml /data/webapps/ROOT/WEB-INF/
  [root@node4 conf]# vim /data/webapps/ROOT/WEB-INF/web.xml
  在web-app段内(前)添加
  
  [root@node4 conf]# scp /data/webapps/ROOT/WEB-INF/web.xml node3:/data/webapps/ROOT/WEB-INF/
  [root@node4 conf]# catalina.sh start
  [root@node3 conf]# catalina.sh start
  [root@node4 conf]# tail /usr/local/tomcat/logs/catalina.out
  [root@node1 conf.d]# systemctl stop httpd.service
  [root@node1 conf.d]# rm -f vhost.http.conf
  [root@node1 conf.d]# cp vhost.ajp.conf.bak vhost.ajp.conf
  [root@node1 conf.d]# systemctl start httpd.service
  [root@node1 conf.d]# vim vhost.ajp.conf
  [root@node1 conf.d]# systemctl stop httpd.service
  [root@node1 conf.d]# rm -f vhost.ajp.conf
  [root@node1 conf.d]# cp mod_jk.conf.bak mod_jk.conf
  [root@node1 conf.d]# systemctl start httpd.service
  [root@node1 conf.d]# vim workers.properties
  [root@node1 conf.d]# systemctl stop httpd.service
  [root@node1 conf.d]# cd /etc/nginx/
  [root@node1 nginx]# vim nginx.conf
  修改location段的内容为:
  location / {
  proxy_pass http://tcsrvs;
  }   
  [root@node1 nginx]# systemctl start nginx.service
  

  

  03memcached和msm
  

  

  [root@node1 ~]# yum -y install memcached
  [root@node1 ~]# systemctl start memcached.service
  [root@node1 ~]# yum -y install telnet
  [root@node1 ~]# telnet localhost 11211
  [root@node1 ~]# systemctl stop memcached.service
  

  #显示memcached详细信息
  [root@node1 ~]# memcached -u memcached -vv
  

  [root@node1 ~]# vim /etc/sysconfig/memcached
  修改OPTIONS的值为
  OPTIONS="-f 1.2"
  

  [root@node1 ~]# systemctl restart memcached.service
  

  

  [root@node3 lib]# yum -y install memcached
  [root@node3 lib]# systemctl start memcached.service
  [root@node4 conf]# cd /usr/local/tomcat/lib/
  [root@node3 conf]# cd /usr/local/tomcat/lib/
  [root@sotre msm]# ls *
  memcached-session-manager-1.8.3.jar
  memcached-session-manager-tc8-1.8.3.jar
  msm-javolution-serializer-1.8.3.jar
  spymemcached-2.11.1.jar
  [root@sotre msm]# scp * 192.168.1.132:/usr/local/tomcat/lib
  [root@sotre msm]# scp * 192.168.1.133:/usr/local/tomcat/lib
  [root@node4 lib]# cd ../conf/
  [root@node4 conf]# vim server.xml
  删除之前配置的Cluster
  在Context内部添加
  
  [root@node4 conf]# scp server.xml node3:/usr/local/tomcat/conf/
  [root@node4 lib]# catalina.sh start
  [root@node3 lib]# catalina.sh start
  [root@node1 ~]# cd /etc/nginx/
  [root@node4 conf]# rm -f /data/webapps/ROOT/WEB-INF/web.xml
  [root@node3 conf]# rm -f /data/webapps/ROOT/WEB-INF/web.xml
  [root@node4 conf]# catalina.sh stop
  [root@node4 conf]# catalina.sh start
  [root@node3 conf]# catalina.sh stop
  [root@node3 conf]# catalina.sh start
  

  05tcpdump和nc工具的使用
  

  tcp协议目标端口是80
  tcpdump -i eth0 tcp dst port 80
  

  [root@node3 ~]# yum -y install wireshark
  [root@node3 ~]# yum -y install wireshark-gnome
  

  [root@node3 ~]# yum -y install nmap
  

  [root@node3 ~]# yum -y install nc
  
  





运维网声明 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-655856-1-1.html 上篇帖子: 利用memcached在多台服务器之间共享PHP的session数据 下篇帖子: 关于memcache的一些知识
累计签到:464 天
连续签到:5 天
发表于 2019-2-18 11:10:04 | 显示全部楼层
感谢分享,学习一下

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

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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