apache tomcat 集羣!

公司須要一個內部測試局域網, 要求能夠支持3000併發訪問!之前也沒作過服務器這方面、臨時抱佛腳,查看了N多文檔,他人經驗,佈置好以後,又遇到了N多問題,功夫不負有心人、終於仍是完成了要求!觀他人的佈置經驗- 總有不全的地方,因此把本身的經歷寫下來、做後來使用!html

接到了這個任務、首先我想到的是apache httpserver 與tomcat集羣.apache

1、環境: win7    4cpu     8G!tomcat

2、軟件:apache2.25    tomcat7    jre7u55服務器

3、apache2.25安裝、這個比較簡單 一路next 、  惟一須要注意的是:apache 默認使用的80端口,安裝以前看一下此端口有沒有被佔用,若有,關閉了它!session

運行cmd  輸入命令netstat -ano|findstr "80"  !併發

  配置apachejvm

  1. 安裝目錄apache下找到conf/httpd.conf  找到mod_proxy.so 、mod_proxy_ajp.so、mod_proxy_balancer 取消註釋,以下:

      

    LoadModule proxy_module modules/mod_proxy.so  #mod  代理
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so   #ajp協議
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so  #tomcat集羣

     

  2. 啓用httpd-mpm.conf   、httpd-vhosts.conf   文件,  找到並取消註釋 以下:
    Include conf/extra/httpd-vhosts.conf    #定義服務器   如何定義後面會講
    Include conf/extra/httpd-mpm.conf   #優化apache 如何優化後面會講 

     

  3. 配置代理集羣對象在文件最後添加以下代碼
    <proxy balancer://cluster>
    
    BalancerMember ajp://127.0.0.1:8009 loadfactor=2 route=jvm1
    
    BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm3
    
    </proxy>
         loadfactor:表明tomcat調用權重,這裏表示當有3個請求進來時,apache 分配2個請求給jvm1標識的tomcat,1個請求給jvm3標識的tomcat!                                 route:表明apache使用apache協議對tomcat的標識,具體配置會在tomcat配置裏面講!                                                                                                    route:表明apache使用apache協議對tomcat的標識,具體配置會在tomcat配置裏面講!
  4. 配置conf/extra/vhots.conf:這裏只須要在文件的最後添加如下代碼:                                                        
    <VirtualHost *:80>
    
             ServerAdmin 1665656796@qq.com
    
             ServerName  localhost
    
             ServerAlias localhost
    
             ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
    
             ProxyPassReverse / balancer://cluster/
    
    </VirtualHost>

    這裏面有一些參數  serveradmin  能夠隨意   ,serverName,與serverAlias 測試部署階段能夠直接設置爲localhost .proxypass與proxypassreverse 能夠不作修改,後期明白它的含義了能夠根據本身喜愛修改!  jsp

  5. 找到httpd.conf文件在 DirectoryIndex 配置後面添加index.jsp  以下:                                                                                                                        tcp

    <IfModule dir_module>
        DirectoryIndex index.html index.jsp
    </IfModule>

    到這裏 apache 配置完畢!              測試

4、tomcat配置因爲比較簡單,這裏簡略說明,若是是在一臺機器上佈置兩個tomcat,須要修改四個端口、目的是爲了不端口衝突!tomcat啓動報錯.

  1. server.port   端口本身定義吧     只要不衝突就能夠!
  2. connector.port    connector.redirectport  注:connector有兩個,一個使用http協議,一個使用ajp協議,這裏咱們使用的是ajp協議 因此 把ajp協議的更改、固然咱們也可使用http協議作apache與tomcat鏈接、方法同樣!
  3. 配置engine 這裏主要是給tomcat一個標識,用來讓apache區分!和前面apache httpd.conf中的blacermember 配置對應!以下:                                             
     <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

     

  4. 配置cluster 啓動tomcat  進入小貓頁面、找到tomcat doc文檔.裏面有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.0.0.4"
                            port="45564"
                            frequency="500"
                            dropTime="3000"/>
                <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                          address="auto"
                          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>

    注:vlaue  標籤   classname爲jvmroutebindervalve 與 clusterlistener  classname 爲jvmroutesessionidbinderlistener  是爲粘性session準備的處理方式、由於咱們並無使用到,因此須要註釋掉!                                                                                                   這裏還要修改一下revicve.port 也是爲了不衝突!

5、apache 與tomcat都佈置完畢、能夠本身寫個小測試,測一下session是否達到要求!篇章短小,測試項目代碼就不發佈了,網上也有不少!

相關文章
相關標籤/搜索