아파치 / 톰캣 설치 과정 약간

아파치 / 톰캣 설치 과정 약간

일부 변수

아파치 설치 디렉토리

APACHE_PREFIX=/Data/app/apache

아파치 설정 파일

APACHE_CONF=/etc/httpd/httpd.conf

톰캣 설치 디렉토리

TOMCAT1_PREFIX=/Data/app/tomcat1
TOMCAT2_PREFIX=/Data/app/tomcat2

바람둥이 루트 디렉토리

TOMCAT_ROOT=/Data/code

루트 디렉토리 톰캣 구성되어 프로젝트에 추가 바람둥이, TOMCAT_PREFIX / conf의 / server.xml에 $를 수정

발췌문 컨텍스트 여기에서 설정 / 데이터 / 코드 /

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/Data/code"></Context>
.....
.....
</Host>

JK 설치 (커넥터 아파치 톰캣)

wget  http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.39-src.tar.gz

tar zxvf tomcat-connectors-1.2.39-src.tar.gz && cd tomcat-connectors-1.2.39-src/native

./configure --with-apxs=/Data/app/apache/bin/apxs --with-java-home=/Data/app/jdk

make # mod_jk.so会生成在apache安装目录下的modules目录

설치 기본 바람둥이, 또는 바람둥이 시작 로그에 libnative에 오류가있을 것입니다

cd /Data/app/tomcat/bin  # tomcat 安装目录下的bin目录

tar zxvf tomcat-native.tar.gz && cd tomcat-native-1.1.29-src/jni/native

./configure --with-apr=/Data/app/apr/bin/apr-1-config --with-ssl=/usr/local/ssl/

make && make install

cp  /usr/local/apr/lib/libtcnative* /usr/lib  #拷贝到/usr/lib  /usr/lib64等位置都可,参考tomcat启动日志

여러 바람둥이를 시작, 기계는 여러 바람둥이는주의를 기울이 8080,8005,8009 포트 충돌을 피해야한다, server.xml을 톰캣 포트를 수정하거나, 바람둥이보다 더 시작할 수 없습니다 시작

이 로컬에 설치된 바람둥이을 가정 $ TOMCAT1_PREFIX 및 $ TOMCAT2_PREFIX, 포트 충돌이 시작 확인은

$TOMCAT1_PREFIX/bin/catalina.sh start
$TOMCAT2_PREFIX/bin/catalina.sh start

전단 아파치 구성 앞으로 후단 클러스터 톰캣 요청

Mod_jk.conf에서 만든 / 등 / 아파치 / 추가 디렉토리, 파일 내용 :

LoadModule jk_module modules/mod_jk.so  #加载mod_jk模块
JkWorkersFile /etc/httpd/extra/workers.properties  #这个文件里配置的是tomcat集群及负载均衡
JkMountFile /etc/httpd/extra/uriworkermap.properties  # 这里配置的是转发规则,即哪些由apache自己处理,哪些交给tomcat
JkLogFile logs/mod_jk.log
JkLogLevel info

만들기 및 추가 workers.properties에서 uriworkermap.properties

####################################
##file name workers.properties####
worker.list=tomcatserver,status  # tomcatserver为均衡器名称,自定义
# localhost server 1
# ------------------------
worker.s1.port=8009       #s1是为tomcat定义的名称,多个tomcat不得冲突
worker.s1.host=localhost
worker.s1.type=ajp13
worker.s1.lbfactor = 1    #在集群中的权重
# localhost server 2
# ------------------------
worker.s2.port=8010       #s2的意义同s1
worker.s2.host=localhost
worker.s2.type=ajp13
worker.s2.lbfactor = 1

#-----------------------------
worker.tomcatserver.type=lb   #负载均衡类型,
worker.retries=3
worker.tomcatserver.balance_workers=s1,s2   #s1,s2就是上边定义的名称
worker.tomcatserver.sticky_session=false  #启用session复制,该选项必须为false,如果为true,则表示同一用户的请求不会在多个tomcat之间移动,固定由一个tomcat处理
worker.tomcatserver.sticky_session_force=1 #默认tomcat 无反应,是否将请求转到其他tomcat
worker.status.type=status




##########################################
#####file name uriworkermap.properties####
/*=tomcatserver             #所有请求都由controller这个server处理
/jkstatus=status           #所有包含jkstatus请求的都由status这个server处理
!/*.gif=tomcatserver         #所有以.gif结尾的请求都不由tomcatserver这个server处理,以下几个都是一样的意思
!/*.jpg=tomcatserver
!/*.png=tomcatserver
!/*.css=tomcatserver
!/*.js=tomcatserver
!/*.htm=tomcatserver
!/*.html=tomcatserver

수정 $ APACHE_CONF,

Include /etc/httpd/extra/mod_jk.conf

아파치를 다시 시작

설치되어 있지 않은 경우 아파치는 이제 JK 바람둥이와 통신 할 수 있으며, 요청이 균등 S1 분산이 바람둥이. JK를 S2, 아파치 프록시는 바람둥이와 통신 할 수 있습니다

여러 바람둥이 세션 복제는 클라이언트 세션을 유지하기 위해

$ TOMCAT1_PREFIX / conf의 / server.xml에와 $ TOMCAT2_PREFIX / conf의 / server.xml을 수정

TOMCAT1_PREFIX / conf의 / server.xml에
<Engine name="Catalina" defaultHost="localhost" jvmRoute="s1">  #jvmRoute必须设置,s1与workers.properties中设置的名称一致,另一个为jvmRoute="s2"

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

        <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.0.0.4"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                      address="auto"      #auto的话,会绑定在127.0.0.1上
                      port="4000"         #这个端口号两个tomcat必须不一致,不得冲突
                      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>

$ TOMCAT_ROOT에서 WEB-INF 디렉토리를 생성, WEB-INF 디렉토리 아래에 web.xml 파일을 생성

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
<distributable/>    #必须添加这个标签
</web-app>

시작이 바람둥이

경로는 -net 224.0.0.0 넷 마스크 240.0.0.0 dev에 eth0를 추가

추천

출처www.cnblogs.com/8gman/p/12336367.html