38 tomcat lb cluster、memcached和msm、msm及jvm虚拟机性能监控、tcpdump和nc工具的使用
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
# tar xf apache-tomcat-8.0.38.tar.gz -C /usr/local/
# cd /usr/local/
# ln -s apache-tomcat-8.0.38/ tomcat
# vim /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
# . /etc/profile.d/tomcat.sh
# catalina.sh version
# mkdir -p /data/webapps/ROOT
# cd tomcat/conf/
# cp server.xml{,.bak}
# vim server.xml
修改
为
添加Host主机
# mkdir /data/logs
# catalina.sh configtest
# mkdir -p /data/webapps/ROOT/{lib,classes,META-INF,WEB-INF}
# vim /data/webapps/ROOT/index.jsp
JSP Test Page on Web1
# catalina.sh start
# 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
# curl node4.magedu.com:8080
#node3结点配置tomcat
# scp apache-tomcat-8.0.38.tar.gz node3:/root
# scp -rp /data/ node3:/data
# tar xf apache-tomcat-8.0.38.tar.gz -C /usr/local/
# cd /usr/local/
# ln -s apache-tomcat-8.0.38/ tomcat
# cd /usr/local/tomcat/conf/
# scp server.xml node3:/usr/local/tomcat/conf/
# cd tomcat/conf/
# vim server.xml
修改
为
修改
node4.magedu.com
为
node3.magedu.com
# scp /etc/profile.d/tomcat.sh node3:/etc/profile.d/
# . /etc/profile.d/tomcat.sh
# catalina.sh start
# curl node3.magedu.com:8080
# vim /data/webapps/ROOT/index.jsp
JSP Test Page on Web1
# yum -y install nginx
# cd /etc/nginx/
# cp nginx.conf{,.bak}
# 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;
}
# nginx -t
# systemctl start nginx.service
2、如何使用httpd反代用户请求
(1)方法一
apache:
mod_proxy
mod_proxy_http
mod_proxy_balancer
tomcat:
http connector
# systemctl stop nginx.service
# systemctl disable nginx.service
# yum -y install httpd
# cd /etc/httpd/conf
# vim httpd.conf
注释掉
#DocumentRoot "/var/www/html"
# cd ../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
# systemctl start httpd.service
# vim server.xml
修改
为
# vim server.xml
修改
为
# catalina.sh stop
# catalina.sh stop
# vim /data/webapps/ROOT/index.jsp
TomcatA
TomcatA.magedu.com
Session ID
Created on
# vim /data/webapps/ROOT/index.jsp
TomcatB
TomcatB.magedu.com
Session ID
Created on
# catalina.sh start
# catalina.sh start
测试
http://192.168.1.131/index.jsp
结果:成功
(2)方法二
apache:
mod_proxy
mod_proxy_ajp
mod_proxy_balancer
tomcat:
http connector
# cp vhost.conf vhost.ajp.conf
# mv vhost.conf vhost.http.conf.bak
# 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
# systemctl restart httpd.service
(3)方法3
apache
mod_jk
tomcat:
ajp connector
# tar xf tomcat-connectors-1.2.42-src.tar.gz
# cd tomcat-connectors-1.2.42-src/native/
# yum -y install httpd-devel gcc glibc-devel
# which apxs
/usr/bin/apxs
# ./configure --with-apxs=/usr/bin/apxs
# make -j 4 && make install
# cd /etc/httpd/
02tomcat lb cluster
1、jk_mod:额外编译安装
(1)反向代理
# cd /etc/httpd/conf.d/
# mv vhost.ajp.conf{,.bak}
# vim mod_jk.conf
LoadModule jk_module modules/mod_jk.so
JkWorkersFile/etc/httpd/conf.d/workers.properties
JkLogFilelogs/mod_jk.log
JkLogLeveldebug
JkMount/*TomcatA
JkMount/status/stat1
# 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
# httpd -t
# systemctl restart httpd.service
(2)负载均衡
# cd /etc/httpd/conf.d/
# vim mod_jk.conf
LoadModule jk_module modules/mod_jk.so
JkWorkersFile/etc/httpd/conf.d/workers.properties
JkLogFilelogs/mod_jk.log
JkLogLeveldebug
JkMount/*lbcluster1
JkMount/status/stat1
# 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
# httpd -t
# systemctl restart httpd.service
2、Balancer内置管理功能
# systemctl stop httpd.service
# mv mod_jk.conf{,.bak}
# cp vhost.ajp.conf.bak vhost.ajp.conf
# vim vhost.ajp.conf
添加
SetHandler balancer-manager
ProxyPass !
Require all granted
# systemctl restart httpd.service
3、Session Cluster
# catalina.sh stop
# cd /usr/local/tomcat/conf/
# vim server.xml
在Host内部添加
# catalina.sh stop
# cd /usr/local/tomcat/conf/
# vim server.xml
在Host内部添加
# cp web.xml /data/webapps/ROOT/WEB-INF/
# vim /data/webapps/ROOT/WEB-INF/web.xml
在web-app段内(前)添加
# scp /data/webapps/ROOT/WEB-INF/web.xml node3:/data/webapps/ROOT/WEB-INF/
# catalina.sh start
# catalina.sh start
# tail /usr/local/tomcat/logs/catalina.out
# systemctl stop httpd.service
# rm -f vhost.http.conf
# cp vhost.ajp.conf.bak vhost.ajp.conf
# systemctl start httpd.service
# vim vhost.ajp.conf
# systemctl stop httpd.service
# rm -f vhost.ajp.conf
# cp mod_jk.conf.bak mod_jk.conf
# systemctl start httpd.service
# vim workers.properties
# systemctl stop httpd.service
# cd /etc/nginx/
# vim nginx.conf
修改location段的内容为:
location / {
proxy_pass http://tcsrvs;
}
# systemctl start nginx.service
03memcached和msm
# yum -y install memcached
# systemctl start memcached.service
# yum -y install telnet
# telnet localhost 11211
# systemctl stop memcached.service
#显示memcached详细信息
# memcached -u memcached -vv
# vim /etc/sysconfig/memcached
修改OPTIONS的值为
OPTIONS="-f 1.2"
# systemctl restart memcached.service
# yum -y install memcached
# systemctl start memcached.service
# cd /usr/local/tomcat/lib/
# cd /usr/local/tomcat/lib/
# 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
# scp * 192.168.1.132:/usr/local/tomcat/lib
# scp * 192.168.1.133:/usr/local/tomcat/lib
# cd ../conf/
# vim server.xml
删除之前配置的Cluster
在Context内部添加
# scp server.xml node3:/usr/local/tomcat/conf/
# catalina.sh start
# catalina.sh start
# cd /etc/nginx/
# rm -f /data/webapps/ROOT/WEB-INF/web.xml
# rm -f /data/webapps/ROOT/WEB-INF/web.xml
# catalina.sh stop
# catalina.sh start
# catalina.sh stop
# catalina.sh start
05tcpdump和nc工具的使用
tcp协议目标端口是80
tcpdump -i eth0 tcp dst port 80
# yum -y install wireshark
# yum -y install wireshark-gnome
# yum -y install nmap
# yum -y install nc
感谢分享,学习一下
页:
[1]