隨筆 - 6  文章 - 129  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827218
          • 排名 - 49

          最新評論

          閱讀排行榜

          評論排行榜

          轉自:http://blog.ixpub.net/html/60/12690260-38040.html

          昨天配置Apache+2Tomcat做負載均衡,在網上查了不少資料,有不少都不夠完整,現在把資料整理了一下,貼出來以供參考。

          1 說明

          本配置實現的是多臺機器訪問的負載均衡。它使用Apache來實現動態負載均衡,并且實現了會話綁定機制,即用戶第一次訪問的會話將綁定在首次訪問的tomcat上,防止會話信息丟失。
          該配置所運行的環境為Windows 2000 server,實現兩臺機器的負載均衡,一臺機器運行apache,另外兩臺機器運行tomcat.該配置稍做修改就可以配置在其他操作系統并能實現一臺服務器跑多個tomcat的負載均衡,以及多于兩臺服務器的負載均衡。

          2 需要的軟件

          Apache 2.0.55 download
          http://httpd.apache.org/download.cgi

          最新版本是2.2.0,但是jk module最新的是支持2.0.55的

          Tomcat 5.0
          http://tomcat.apache.org/tomcat-5.0-doc/index.html

          用tomcat5.0的原因是最近使用Tomcat5.5,發現做網絡連接時非常慢,比如連數據庫或者連socket服務器時,我不清楚是不是我配置的原因,但是最后查不出來,還是換到5.0上比較穩定。

          The JK module
          http://tomcat.apache.org/download-connectors.cgi

          對于Apache來說,很多推薦都是使用jk2,但是tomcat小組已經決定放棄jk2,因為jk可以適用于更多的服務器類型而不是單單Apache,所以我們為了長遠著想,還是用JK吧。

          J2sdk 1.4.2
          http://java.sun.com/j2se/1.4.2/download.html

          3 編譯、安裝和配置Apache

          3.1 解包、編譯和安裝
          安裝Apache和Tomcat+J2sdk,沒什么好說的。

          3.2 基本配置
          環境變量中加入
          TOMCAT_HOME=<tomcat安裝路徑>
          JAVA_HOME=<java安裝路徑>
          JAVA_OPTS=-Xms64M -Xmx512M
          Xms是運行tomcat的java heap的最小大小, Xms是最大大小。

          3.3 拷貝mod_jk模塊文件
          拷貝mod_jk.so到Apache安裝目錄的modules目錄下

          3.4 在mod_jk.conf配置
          編輯Apache的配置文件Apache安裝目錄的conf/httpd.conf

          加入一行
          include conf\mod_jk.conf
          在conf目錄下創建mod_jk.conf文件,內容如下:

          --------------------------------------mod_jk.conf----------------------------------------------
          # Load mod_jk module
          LoadModule jk_module modules/mod_jk.so


          # Where to find workers.properties
          JkWorkersFile conf/workers.properties


          # Where to put jk logs
          JkLogFile logs/mod_jk.log


          # Set the jk log level [debug/error/info]
          JkLogLevel info


          # Select the log format
          JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "


          # JkOptions indicate to send SSL KEY SIZE,
          JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories


          # JkRequestLogFormat set the request format
          JkRequestLogFormat "%w %V %T"

          # Send JSPs for context / to worker named loadBalancer
          JkMount /*.jsp loadBalancer
          --------------------------------------------mod_jk.conf-----------------------------------------------

          3.5 workers.properties 文件
          在 conf目錄下生成該文件,該文件告訴apache 每個負載均衡的tomcat服務的運行參數,如機器名和端口號等。
          -----------------------------------------workers.properties-------------------------------
          #
          # workers.properties
          #

          # list the workers by name

          worker.list=tomcat1, tomcat2, loadBalancer

          # ------------------------
          # First tomcat server
          # ------------------------
          worker.tomcat1.port=8009 //第一臺tomcat服務所在機器監聽端口
          worker.tomcat1.host=hostname1 //第一臺tomcat服務所在機器ip地址
          worker.tomcat1.type=ajp13

          # Specify the size of the open connection cache.
          #worker.tomcat1.cachesize

          #
          # Specifies the load balance factor when used with
          # a load balancing worker.
          # Note:
          # ----> lbfactor must be > 0
          # ----> Low lbfactor means less work done by the worker.
          worker.tomcat1.lbfactor=100


          # ------------------------
          # Second tomcat server
          # ------------------------
          worker.tomcat2.port=8009 //第二臺tomcat服務所在機器監聽端口
          worker.tomcat2.host=hostname2 //第二臺tomcat服務所在機器ip地址
          worker.tomcat2.type=ajp13

          # Specify the size of the open connection cache.
          #worker.tomcat2.cachesize

          #
          # Specifies the load balance factor when used with
          # a load balancing worker.
          # Note:
          # ----> lbfactor must be > 0
          # ----> Low lbfactor means less work done by the worker.
          worker.tomcat2.lbfactor=100


          # ------------------------
          # Load Balancer worker
          # ------------------------

          #
          # The loadbalancer (type lb) worker performs weighted round-robin
          # load balancing with sticky sessions.
          # Note:
          # ----> If a worker dies, the load balancer will check its state
          # once in a while. Until then all work is redirected to peer
          # worker.
          worker.loadBalancer .type=lb
          worker.loadBalancer.balanced_workers=tomcat1, tomcat2

          #
          # END workers.properties
          #
          -----------------------------------------workers.properties-----------------------------

          4 配置Tomcat 服務器


          修改conf/server.xml文件
          在跑第一個tomcat實例的機器上,在大約第100行, 替換:
          <Engine name="Standalone" defaultHost="localhost" debug="0">
          為:
          <Engine jvmRoute="tomcat1" name="Standalone" defaultHost="localhost" debug="0">
          對跑第二個tomcat實例的機器上,替換為 jvmRoute="tomcat2".
          注 意,一定是替換這一行,而包含在原來的engine里面的host不做更改。有的文檔寫得是在配置中加入一行<Engine jvmRoute="tomcat1" name="Standalone" defaultHost="localhost" debug="0"><Engine>,其實是不對的,這樣負載均衡是沒有問題的,但是不能做session綁定了,也就是說同一用戶 會在兩臺服務器上跳來跳去。這是由于jvmRoute不正確引起的,因為如果只是加入一行的話,是沒有什么作用的,Engine仍然是原來的 Engine,而原來的Engine中jvmRoute是不正確的,所以一定要替換。而且這個jvmRoute一定要跟 workers.properties中的名稱完全匹配,否則也不能實現session綁定.


          5 測試

          在跑tomcat1實例的機器的 webapps/ROOT 目錄生成如下內容的index.jsp文件:
          <html>
          <body bgcolor=red>
          <center>

          <h1>Tomcat 1</h1>
          </body>
          </html>
          同理,在跑tomcat2實例的機器的 webapps/ROOT 目錄生成如下內容的index.jsp文件:
          <html>
          <body bgcolor=blue>
          <center>

          <h1>Tomcat 2</h1>
          </body>
          </html>

          啟動Tomcat1, Tomcat2 和Apache服務

          首先驗證Apache服務器的靜態頁面是否正常,訪問:http://hostname/.
          驗證tomcat和apache配置提供負載均衡,用不同的終端訪問:http://hostname/index.jsp
          如果你看到紅色的頁面,表示為tomcat1 服務器返回的,
          如果你看到蘭色的頁面,表示為tomcat2 服務器返回的。這里注意的是在linux上面的apache輪詢一般要返回10次tomcat1的服務后才會返回tomcat2的服務,并且以后的訪問是沒有規律的,在window2000環境下則是交替的返回tomcat1和tomcat2 的服務。

          現在再測試下會話綁定功能,當你在同一臺客戶端里重載以上(刷新頁面)訪問的index.jsp頁面時,確信永遠返回同一種顏色,即總是從同一臺tomcat機器返回頁面。

           

          JK module 的worker.properties配置的詳細說明參看

          http://tomcat.apache.org/connectors-doc/config/workers.html

          JK module 的Apache配置的詳細說明

          http://tomcat.apache.org/connectors-doc/config/apache.html


          本測試使用的軟體下載地址:

          http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/

          http://archive.apache.org/dist/httpd/binaries/win32/





          posted on 2009-11-26 15:26 Ke 閱讀(490) 評論(0)  編輯  收藏 所屬分類: tomcat
          主站蜘蛛池模板: 澄江县| 淮滨县| 冷水江市| 武汉市| 河东区| 鹤壁市| 芜湖市| 池州市| 白玉县| 大兴区| 嵊泗县| 广昌县| 阳谷县| 香格里拉县| 黑水县| 汉源县| 澄江县| 峨眉山市| 永平县| 福建省| 友谊县| 锦州市| 达拉特旗| 本溪市| 大厂| 宾川县| 长宁县| 平邑县| 朝阳县| 色达县| 濉溪县| 玛曲县| 莆田市| 金塔县| 河南省| 南宁市| 台中县| 哈尔滨市| 蕉岭县| 钟山县| 柯坪县|