熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Apache與Tomcat集群配置

2022-06-13   來源: Java開源技術 
    PS:今天整理硬盤發現這個有用的收藏與大家分享!
   
    一 環境說明
   
    Windows XP
   
    apache_winxno_sslmsi
   
    mod_jkapacheso
   
    apachetomcatzip
   
    我的程序分別安裝到
   
    D:\webserver\Apache Group\Apache
   
    D:\webserver\TomcatCluster\tomcat
   
    D:\webserver\TomcatCluster\tomcat
   
    Apache安裝完後在右下角狀態欄中可以看到 Apache Service Monitor 可以控制Apache的狀態
   
    驗證Apache是否安裝成功可以訪問 如果能看到Apache的預制頁面說明安裝成功如果不行可以訪問試試(可能因為IIS已經使用了端口 我的就是 可以修改Apache的配置文件來修改)
   
    二 負載均衡
   
    找到Apache安裝目錄下conf目錄中的文件
   
    在文件最後添加一句
   
    include D:\webserver\Apache Group\Apache\conf\nf
   
    接著在conf目錄中新建文件nf並添加下面的內容
   
    #加載mod_jk Module
   
    LoadModule jk_module modules/mod_jkapacheso
   
    #指定 workersproperties文件路徑
   
    JkWorkersFile conf/workersproperties
   
    #指定哪些請求交給tomcat處理controller為在workerspropertise裡指定的負載分配控制器名
   
    JkMount /*jsp controller
   
    在conf目錄下新建workersproperties文件並添加如下內容
   
    #server
   
    workerlist = controller
   
    #========tomcat========
   
    workertomcatport=
   
    workertomcathost=localhost
   
    workertomcattype=ajp
   
    workertomcatlbfactor =
   
    #========tomcat========
   
    workertomcatport=
   
    workertomcathost=localhost
   
    workertomcattype=ajp
   
    workertomcatlbfactor =
   
    #========controller負載均衡控制器========
   
    ntrollertype=lb
   
    ntrollerbalanced_workers=tomcattomcat
   
    ntrollersticky_session=
   
    (解釋一下AJP是 Apache JServ Protocol version
   
    將mod_jkapacheso 復制到Apache的modules目錄中
   
    接下來配置個Tomcat
   
    打開tomcat\conf\ serverxml
   
    將Server port 改為
   
    <Server port= shutdown=SHUTDOWN>
   
    將Define Connector port改為
   
    <Connector port= maxHttpHeaderSize=
   
    將AJP Connector port改為
   
    <Connector port= enableLookups=false redirectPort= protocol=AJP/ />
   
    打開tomcat\conf\serverxml
   
    將Server port 改為
   
    <Server port= shutdown=SHUTDOWN>
   
    將Define Connector port改為
   
    <Connector port= maxHttpHeaderSize=
   
    將AJP Connector port改為
   
    <Connector port= enableLookups=false redirectPort= protocol=AJP/ />
   
    好了現在建立一個測試程序
   
    分別在兩個Tomcat的webapps中建立test目錄並新建testjsp文件內容如下
   
    <%
   
    Systemoutprintln(===========
   
    %>
   
    啟動apache tomcat tomcat
   
    不斷刷新頁面可以在兩個Tomcat的控制台中看到交替輸出=========== 這樣就實現了負載均衡
   
    三 集群配置
   
    集群除了負載均衡另一個主要功能是Session Replication
   
    打開tomcat\conf\ serverxml將<Cluster>部分的注釋去掉
   
    再打開tomcat\conf\ serverxml將<Cluster>部分的注釋也去掉並將<Cluster>中<Receiver>的tcpListenPort的值改為以避免與Tomcat沖突


   
    添加一個新的測試程序testjsp
   

  

 
    分別在個tomcat的webapps\test中新建WEBINF目錄在WEBINF中添加webxml內容如下
   

  

 
    主要是添加<distributable/>distributable元素用來告訴servlet容器程序將部署在分布式Web容器中
   
    重新啟動tomcat和tomcat
   
    隨意添加keyvalue 可以看到兩個tomcat交替顯示session中的值各個tomcat的session是同步的
   
    再來修改tomcat\conf\serverxml找到
   
    <Engine name=Catalina defaultHost=localhost>
   
    為其添加jvmRoute屬性值為apache的conf\workersproperties中配置的tomcat名字
   
    <Engine name=Catalina defaultHost=localhost jvmRoute=tomcat>
   
    同樣修改tomcat\conf\serverxml的相同部分
   
    <Engine name=Catalina defaultHost=localhost jvmRoute=tomcat>
   
    jvmRoute是tomcat路由標示由此區分兩台tomcat主機一次會話就有一個sessionID這個sessionID後面會跟上jvmRoute設置的值這樣一次會話就只會讓一個tomcat處理
   
    重新啟動tomcat tomcat
   
    可以看到sessiongetId()的值在原session id後面多了jvmRoute的值
   
    ID AFFAEAACFtomcat
   
    隨意添加keyvalue可以看到session信息只在tomcat中輸出
   
    再打開一個浏覽器並訪問 其session id可能變為
   
    ID EBEFEEBAFtomcat
   
    其值也只會在tomcat中輸出
   
    現在把tomcat關閉再次刷新訪問tomcat的那個浏覽器可以看到session信息輸出到了tomcat的控制台中並且session信息仍然保留著


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28630.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.