er2121e 发表于 2015-2-11 17:19:18

tomcat负载均衡

node2: #rpm -ivh jdk-7u67-linux-x64.rpm
         #vim /etc/profile.d/java.sh
            export JAVA_HOME=/usr/java/latest
            export PATH=$JAVA_HOME/bin:$PATH
         #tar xf apache-tomcat-7.-.55-C /usr/local
         #cd /usr/local
         #ln -sv apache-tomcat-7.0.55 tomcat
         #cd tomcat
         #useradd tomcat
         #chown -R tomcat.tomcat ./*
         #vim /etc/profile.d/tomcat.sh
         export CATALINA_HOME=/usr/local/tomcat
         export PATH=$CATALINA_HOME/bin:$PATH
         #su -tomcat -c ‘/usr/local/tomcat/bin/catalina.sh start’
         #cd /etc/profile.d/
         #scp java.sh tomcat.sh node3:/etc/profile.d/

node3: #rpm -ivh jdk-7u67-linux-x64.rpm
         #tar xf apache-tomcat-7.0.55 -C /usr/local
         #cd /usr/local
         #ln -sv apache-tomcat-7.0.55 tomcat
         #cd tomcat
         #useradd tomcat
         #chown -R tomcat.tomcat ./*
         #su -tomcat -c ‘/usr/local/tomcat/bin/catalina.sh start’
         #echo $PATH
         #catalina.sh start
         #ps aux | grep java(tomcat 身份运行java)
         #catalina.sh stop

node2:#cd /usr/local/tomcat/conf/
   #vim server.xml
<Enginename="Catalina"defaultHost="node2.stu7.com jvmRoute="TomcatA">
<Host name="node2.stu7.com"appBase="/webapps"
            unpackWARs="true" autoDeploy="true">
   <Host name="node2.stu7.com"appBase="/webapps"
            unpackWARs="true" autoDeploy="true">
         <Context path="" docBase="ROOT" reloadable="true" />
      </Host>


node2:#mkdir -pv /webapps/ROOT/{lib,classes, WEB-INF}
      # cd /webapps/ROOT/
   #vim index.jsp
<%@ page language="java" %><html><head><title>TomcatA</title></head><body>    <h1><font color="red">TomcatA.stu7.com</font></h1>    <table align="centre" border="1">      <tr>      <td>Session ID</td>    <% session.setAttribute("stu7.com","stu7.com"); %>      <td><%= session.getId() %></td>      </tr>      <tr>      <td>Created on</td>      <td><%= session.getCreationTime() %></td>   </tr>    </table></body></html>
#su -tomcat -c ‘catalina.sh start’
打开浏览器:172.16.249.125:8080


node2:#scp conf/server.xml node3:/usr/local/tomcat/conf/

node3:#mkdir -pv /webapps/ROOT/{lib,classes, WEB-INF}
      #cd /webapps/ROOT/
   #vim index.jsp
   <%@ page language="java" %><html><head><title>TomcatB</title></head><body>    <h1><font color="blue">TomcatB.stu7.com</font></h1>    <table align="centre" border="1">      <tr>      <td>Session ID</td>    <% session.setAttribute("stu7.com","stu7.com"); %>      <td><%= session.getId() %></td>      </tr>      <tr>      <td>Created on</td>      <td><%= session.getCreationTime() %></td>   </tr>    </table></body></html>#su -tomcat -c ‘catalina.sh start’打开浏览器;172.16.249.126:8080

nginx方式:node1:yum install nginx -y#vim /etc/nginx/nginx.conf   upstream tcsrvs {      server 172.16.249.125:8080;      server 172.16.249.99:8080;   }#vim /etc/nginx/conf.d/default.conf location / {      #root   /usr/share/nginx/html;      proxy_pass http://tcsrvs;      indexindex.html index.htm;    }#nginx -t#servce nginx start打开浏览器:172.16.249.101




http方式:
node1:# httpd -M
      proxy_balancer_module (shared)      proxy_http_module (shared)      proxy_ajp_module (shared)#cd /etc/httpd/conf/      #vim /httpd.conf
         #DocumentRoot "/var/www/html"
      #vim mod_http.conf (文件必须放在/etc/httpd/conf.d/)
    NameVirtualHost *:80<Proxy balancer://tcsrvs>    BalancerMember http://172.16.249.125:8080 loadfactor=1    BalancerMember http://172.16.249.99:8080 loadfactor=1    ProxySet lbmethod=byrequests</Proxy> <VirtualHost *:80>       ServerName node4.stu7.com      ErrorLog logs/error_log       CustomLog logs/access_log common       ProxyVia On       ProxyRequests OFF       proxypreserveHost On       <Proxy *>       Order deny,allow       Allow from all       </Proxy>       Proxypass /status !       ProxyPass / balancer://tcsrvs/       proxypassReverse / balancer://tcsrvs/      <location />      Order deny,allow      Allow from all      </location></VirtualHost>#service httpd start#ss -tnl 80端口处于监听状态打开浏览器:172.16.249.101:



ajp方式:
#cd /etc/httpd/conf/      #vim /httpd.conf
         #DocumentRoot "/var/www/html"
      #vim mod_ajp.conf (文件必须放在/etc/httpd/conf.d/)
    NameVirtualHost *:80<Proxy balancer://tcsrvs>    BalancerMember http://172.16.249.125:8009 loadfactor=1    BalancerMember http://172.16.249.99:8009 loadfactor=1    #ProxySet lbmethod=byrequests</Proxy> <VirtualHost *:80>       ServerName node4.stu7.com      ErrorLog logs/error_log       CustomLog logs/access_log common       ProxyVia On       ProxyRequests OFF       proxypreserveHost On       <Proxy *>       Order deny,allow       Allow from all       </Proxy>       Proxypass /status !       ProxyPass / balancer://tcsrvs/       proxypassReverse / balancer://tcsrvs/      <location />      Order deny,allow      Allow from all      </location></VirtualHost>#service httpd start#ss -tnl 80端口处于监听状态打开浏览器:172.16.249.101:


制定管理页面不代理:      #cd /etc/httpd/conf.d/      #vim mod_ajp.confNameVirtualHost *:80<Proxy balancer://tcsrvs>    BalancerMember ajp://172.16.249.125:8009 loadfactor=1    BalancerMember ajp://172.16.249.99:8009 loadfactor=1   # ProxySet lbmethod=byrequests</Proxy> <VirtualHost *:80>       ServerName node4.stu7.com      ErrorLog logs/error_log       CustomLog logs/access_log common       ProxyVia On       ProxyRequests OFF       proxypreserveHost On       <Proxy *>       Order deny,allow       Allow from all       </Proxy>       <Location /balancer-manager>       SetHandler balancer-manager       Proxypass !       Order deny,allow       Allow from all       </Location>       Proxypass /status !       ProxyPass / balancer://tcsrvs/       proxypassReverse / balancer://tcsrvs/      <location />      Order deny,allow      Allow from all      </location></VirtualHost>#serivce httpd restart打开浏览器:172.16.249.101/balancer-manager

mod_jk方式:   #lftp 172.16.0.1/pub/Sources/6.x86_64/tomcat
       tomcat-connectors-1.2.40-src.tar.gz
   #yum install httpd-devel -y
   #tar xf tomcat-connectors-1.2.40-src.tar.gz
   # cd tomcat-connectors-1.2.40-src/native
   #./configure --with-apxs=`which apxs`
   #make && make install
#ls /usr/lib64/httpd/moudules/
#cd /etc/httpd
#vim conf.d/mod_jk.conf
   LoadModule jk_module modules/mod_jk.so
   JkWorkersFile /etc/httpd/conf.d/workers.properties
   JklogFile logs/mod_jk.log
   JklogLevel info
   JkMOunt /status !
   JkMount /jk-status StatA
   JkMount /* tcsrvs
#vim workers.properties
worker.list=tcsrvs,StatAworker.TomcatA.port=8009worker.TomcatA.host=172.16.249.125worker.TomcatA.type=ajp13worker.TomcatA.lbfactor=1worker.TomcatB.port=8009worker.TomcatB.host=172.16.249.99worker.TomcatB.type=ajp13worker.TomcatB.lbfactor=1worker.tcsrvs.type=lbworker.tcsrvs.sticky_session=0worker.tcsrvs.balance_workers=TomcatA,TomcatBworker.statA.type=status #service httpd restart
打开浏览器:172.16.249.101:


session绑定:
#vim /usr/local/tomcat/conf/server.xml
<Enginename="Catalina"defaultHost="node2.stu7.com jvmRoute="TomcatA">
#su - tomcat -c ‘catalina.sh start’
#vim workers.properties
worker.list=tcsrvs,StatAworker.TomcatA.port=8009worker.TomcatA.host=172.16.249.125worker.TomcatA.type=ajp13worker.TomcatA.lbfactor=1worker.TomcatB.port=8009worker.TomcatB.host=172.16.249.99worker.TomcatB.type=ajp13worker.TomcatB.lbfactor=1worker.tcsrvs.type=lbworker.tcsrvs.sticky_session=1worker.tcsrvs.balance_workers=TomcatA,TomcatBworker.statA.type=status #service httpd restart
打开浏览器:172.16.249.101:

Delta会话集群配置

node2:#nano server.xml
    在Engine或Host组件内部定义Cluster组件:
   <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"      channelSendOptions="8">
   <Manager className="org.apache.catalina.ha.session.DeltaManager"      expireSessionsOnShutdown="false"      notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel"><Membership className="org.apache.catalina.tribes.membership.McastService"          address="228.101.10.41"          port="45564"          frequency="500"          dropTime="3000"/>      <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"      address="172.16.249.125"      port="4000"      autoBind="100"      selectorTimeout="5000"      maxThreads="6"/>
      <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">      <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>      </Sender>      <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>      <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>      </Channel>
      <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"      filter=""/>      <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
      <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"      tempDir="/tmp/war-temp/"      deployDir="/tmp/war-deploy/"      watchDir="/tmp/war-listen/"      watchEnabled="false"/>
      <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>      <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>      </Cluster>
      #vim server.xml
      <Enginename="Catalina"defaultHost="localhost"jvmRoute="TomcatA">   <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"               channelSendOptions="8">
          <Manager className="org.apache.catalina.ha.session.DeltaManager"                   expireSessionsOnShutdown="false"                   notifyListenersOnReplication="true"/>
          <Channel className="org.apache.catalina.tribes.group.GroupChannel">            <Membership className="org.apache.catalina.tribes.membership.McastService"                        address="228.101.10.24" 修改组播地址                        port="45564"                        frequency="500"                        dropTime="3000"/>            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"                      address="172.16.249.125"节点地址                      port="4000"                      autoBind="100"                      selectorTimeout="5000"                      maxThreads="6"/>
            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">            <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>            </Sender>            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>          </Channel>
          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"               filter=""/>          <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
          <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"                  tempDir="/tmp/war-temp/"                  deployDir="/tmp/war-deploy/"                  watchDir="/tmp/war-listen/"                  watchEnabled="false"/>
          <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>      </Cluster><Host name="localhost"appBase="/webapps"            unpackWARs="true" autoDeploy="true">
      node2#scp server.xml node3:/usr/local/tomcat/conf/server/xml
      node3:#vim server.xml
<Enginename="Catalina"defaultHost="localhost"jvmRoute=TomcatB">   <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"               channelSendOptions="8">
          <Manager className="org.apache.catalina.ha.session.DeltaManager"                   expireSessionsOnShutdown="false"                   notifyListenersOnReplication="true"/>
          <Channel className="org.apache.catalina.tribes.group.GroupChannel">            <Membership className="org.apache.catalina.tribes.membership.McastService"                        address="228.101.10.24" 修改组播地址                        port="45564"                        frequency="500"                        dropTime="3000"/>            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"                      address="172.16.249.99"节点地址                      port="4000"                      autoBind="100"                      selectorTimeout="5000"                      maxThreads="6"/>
            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">            <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>            </Sender>            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>          </Channel>
          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"               filter=""/>          <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
          <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"                  tempDir="/tmp/war-temp/"                  deployDir="/tmp/war-deploy/"                  watchDir="/tmp/war-listen/"                  watchEnabled="false"/>
          <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>      </Cluster><Host name="localhost"appBase="/webapps"            unpackWARs="true" autoDeploy="true">
node2:#cp web.xml /webapps/ROOT/WEB-INF/
      #cd /webapps/ROOT/WEB-INF/
      #vim web.xml
      添加<distributable />
      #scp web.xml node2:/webapps/ROOT/WEB-INF/
node2:#su - tomcat -c 'catalina.sh stop'
node2:#su - tomcat -c 'catalina.sh start'
node3:#su - tomcat -c 'catalina.sh stop'
node3:#su - tomcat -c 'catalina.sh start'
node2:#cd /usr/local/tomcat/
      #tail logs/catalina.out


打开浏览器:172.16.249.101:(无论怎么刷新都是session id一致)


说明:   
确保Engine组件中存在jvmRoute属性,其值要与mod_jk配置中使用worker同名;      <Enginename="Catalina"defaultHost="localhost"jvmRoute="tomcatA">
    为打算使用集群会话的webapp的web.xml配置文件(一般在META-INF)添加
      <distributable/>

页: [1]
查看完整版本: tomcat负载均衡