posts - 119, comments - 62, trackbacks - 0, articles - 0

          apache與tomcat連接并實現集群配置

          Posted on 2008-09-10 10:25 Kevin Meng 閱讀(558) 評論(0)  編輯  收藏

          <1>軟硬件環境
          Apache Http Server 2.2.4
          Tomcat 5.028
          jdk1.6
          請自行下載jk_module.so,但注意必須與apache http server的版本對應。

          硬件我手頭有一臺IBM服務器,有三臺刀片機可用,IP分別是
          S1:192.168.70.101
          S2:192.168.70.102
          S3:192.168.70.103
          當然這三臺機器您完全可以用三個一般的臺式機來代替.
          我們的計劃是
          用S1來做應用服務器,用S2來做負載均衡,用S3來做數據庫服務器.
          <2>在S1,S2下安裝jdk1.6
          例如我安裝在c:\jdk1.6下
          添加環境變量:
          JAVA_HOME=C:\jdk1.6
          CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
          在PATH前面加:
          PATH=%JAVA_HOME%\bin;
          <3>在S1下安裝apache,沒有什么值得注意的地方,一路按next就可以了
          我安裝在D:\Apache2.2
          <4>在S1,S2下安裝tomcat 5.028
          也是一路按next就可以了,我安裝在d:\tomcat5.0

          以上對于一個java開發人員來說應該都不是問題,接下來就是重頭戲了!
          <5>配置
          5.1 把下載的mod_jk-1.2.26-httpd-2.2.4.so拷貝到S1機器的D:\Apache2.2\modules目錄下,并改名為mod_jk.so
          5.2 打開S1機器的D:\Apache2.2\conf\http.conf文件,在一堆LoadModule的最后加上這么一行
          LoadModule jk_module modules/mod_jk.so
          5.3 在D:\Apache2.2\conf\http.conf的最后加上對jk_module的配置

          #與tomcat關聯

          <IfModule jk_module>

          JkWorkersFile conf/workers.properties 

          JkMountFile conf/uriworkermap.properties

          JkLogFile logs/mod_jk.log

          JkLogLevel warn

          </IfModule>

          <IfModule dir_module>

              DirectoryIndex index.html,index.jsp,index.htm   

          </IfModule>

          #結束與tomcat關聯

           


          #添加虛擬主機,注意S1上apache網頁文件目錄和tomcat網頁文件目錄要指向同一個目錄,否則靜態頁面會無法訪問  

          <VirtualHost *:80>
                ServerName www.map512.cn
                DocumentRoot D:/Tomcat5.0/webapps
                ServerAdmin support.szmap@gmail.com
                JkMountFile conf/uriworkermap.properties
          </VirtualHost>
          #給虛擬主機目錄付權限
          <Directory D:/Tomcat5.0/webapps>                   
                  Options Indexes FollowSymLinks
                  AllowOverride None
                  Order allow,deny
                  Allow from all
          </Directory>

          #默認訪問
          <IfModule dir_module>
              DirectoryIndex index.html,index.jsp  
          </IfModule>


          5.4 在D:\Apache2.2\conf\http.conf目錄下新建一個文件workers.properties,并添加以下內容

          #
          # workers.properties
          #


          # list the workers by name

          worker.list=SZMAP, status

          # localhost server 1
          # ------------------------
          worker.s1.port=8009
          worker.s1.host=192.168.70.101
          worker.s1.type=ajp13

          # localhost server 2
          # ------------------------
          worker.s2.port=8009
          worker.s2.host=192.168.70.102
          worker.s2.type=ajp13
          # worker.s2.stopped=1

          worker.SZMAP.type=lb
          worker.retries=3
          worker.SZMAP.balance_workers=s1, s2
          worker.SZMAP.sticky_session=1

          worker.status.type=status

          說明:這個文件配置了兩個worker,一個是SZMAP即我們的應用服務,這個應用服務type是lb即負載均衡,并由s1和s2兩個balanced_workers來執行,這里你可以添加無限多個服務器來實現負載(當然,前提是您有足夠的RMB),一個是status是用來查看負載均衡狀態的,我們后面將會用到.

          5.6 在D:\Apache2.2\conf\http.conf目錄下新建一個文件uriworkermap.properties,并添加以下內容

          /*=SZMAP
          /jkstatus=status    #設置除以下類型的文件外,都由tomcat提供服務(也就是說下面列出的格式都有apache提供服務)

          !/*.gif=SZMAP
          !/*.jpg=SZMAP
          !/*.png=SZMAP
          !/*.css=SZMAP
          !/*.js=SZMAP
          !/*.html=SZMAP


          說明:這個配置的意思是,所有的請求都轉到SZMAP這個worker(即上面配置的s1,s2這兩個balanced_workers下的tomcat服務)去執行,除了*.gif,*.html等靜態元素和/jkstatus,/jkstatus由status這個worker執行.

          5.7 Tomcat的配置
          打開S1機器D:\Tomcat5.0\conf\server.xml,找到Engine部分,改成

          <Engine defaultHost="localhost" name="Catalina" jvmRoute="s1">

                <Host appBase="webapps" name="localhost">

             

          <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"

                           managerClassName="org.apache.catalina.cluster.session.DeltaManager"

                           expireSessionsOnShutdown="false"

                           useDirtyFlag="true">


                      <Membership 

                          className="org.apache.catalina.cluster.mcast.McastService"

                          mcastAddr="228.0.0.4"

                          mcastPort="45564"

                          mcastFrequency="500"

                          mcastDropTime="3000"/>


                      <Receiver 

                          className="org.apache.catalina.cluster.tcp.ReplicationListener"

                          tcpListenAddress="auto"

                          tcpListenPort="4001"

                          tcpSelectorTimeout="100"

                          tcpThreadCount="6"/>


                      <Sender

                          className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"

                          replicationMode="pooled"/>


                      <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"

                             filter=".*\.gif;.*\.js;.*\.jpg;.*\.html;.*\.txt;"/>

                  </Cluster>

              

                  <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>

                </Host>

                <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>

                <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>

              </Engine>

          打開S2機器D:\Tomcat5.0\conf\server.xml,找到Engine部分,改成

          <Engine defaultHost="localhost" name="Catalina" jvmRoute="s2">

                <Host appBase="webapps" name="localhost">

              

          <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"

                           managerClassName="org.apache.catalina.cluster.session.DeltaManager"

                           expireSessionsOnShutdown="false"

                           useDirtyFlag="true">


                      <Membership 

                          className="org.apache.catalina.cluster.mcast.McastService"

                          mcastAddr="228.0.0.4"

                          mcastPort="45564"

                          mcastFrequency="500"

                          mcastDropTime="3000"/>


                      <Receiver 

                          className="org.apache.catalina.cluster.tcp.ReplicationListener"

                          tcpListenAddress="auto"

                          tcpListenPort="4001"

                          tcpSelectorTimeout="100"

                          tcpThreadCount="6"/>


                      <Sender

                          className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"

                          replicationMode="pooled"/>


                      <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"

                             filter=".*\.gif;.*\.js;.*\.jpg;.*\.html;.*\.txt;"/>

                  </Cluster>

              

                  <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>

                </Host>

                <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>

                <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>

              </Engine>


          到此,我們的配置已經完成.


          <6>查看結果
          啟動S1和S2下的tomcat服務,然后啟動S1下的apache服務.
          打開流覽器,輸入地址http://192.168.70.101/jkstatus,如果能看到以下界面,那么,恭喜您,您該感謝我了!呵呵!

          JK Status Manager for 192.168.70.101:80

          Server Version: Apache/2.2.4 (Win32) mod_jk/1.2.26
          JK Version: mod_jk/1.2.26


          (every seconds) [Change Format: XML | Property | Text]  [Read Only]   [S=Show only this worker, E=Edit worker, R=Reset worker state, T=Try worker recovery]

           


           

          Listing Load Balancing Worker (1 Worker) [Hide]


           

          [S|E|R]  Worker Status for SZMAP

          Type Sticky Sessions Force Sticky Sessions Retries LB Method Locking Recover Wait Time Max Reply Timeouts
          lb True False 2 Request Optimistic 60 0

          Good Degraded Bad/Stopped Busy Max Busy Next Maintenance
          2 0 0 0 6 32/94

          Balancer Members [Hide]

            Name Type Host Addr Act State D F M V Acc Err CE RE Wr Rd Busy Max Route RR Cd Rs
          [E|R s1 ajp13 192.168.70.101:8009 192.168.70.101:8009 ACT OK/IDLE 0 1 1 0 1821 0 0 0 1.3M 2.0M 0 5 s1     0/0
          [E|R s2 ajp13 192.168.70.102:8009 192.168.70.102:8009 ACT OK/IDLE 0 1 1 0 1821 0 0 0 1.3M 2.0M 0 4 s2     0/0

          Edit one attribute for all members: [Activation |LB Factor |Route |Redirect Route |Cluster Domain |Distance ]



          參考:
          proxy方式:http://blog.chinaunix.net/u/22176/showart_1002535.html
          liunx下的配置:http://seven.blog.51cto.com/120537/57930


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 清水河县| 滕州市| 铁岭县| 恩平市| 加查县| 青神县| 六安市| 松原市| 出国| 武清区| 岱山县| 芜湖市| 莱州市| 抚远县| 渭南市| 通河县| 荆门市| 且末县| 抚松县| 措勤县| 北辰区| 镇沅| 鄂托克前旗| 临潭县| 昌平区| 天津市| 沛县| 扎囊县| 伊金霍洛旗| 项城市| 舒城县| 通山县| 于田县| 樟树市| 河源市| 遵义县| 桃江县| 成都市| 吴川市| 江山市| 宁河县|