<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    I'll be back!

      Focus on BPM, celebrate PegaRULES Process Commander (PRPC)
    posts - 76, comments - 161, trackbacks - 0, articles - 2
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Apache+JK+Tomcat負(fù)載平衡配置

    Posted on 2006-12-14 17:33 zolly 閱讀(5236) 評(píng)論(0)  編輯  收藏

    準(zhǔn)備軟件
    1、? Tomcat5.5.17,下載地址:http://www.apache.org/dist/tomcat/tomcat-5/v5.5.17/bin/
    2、? Apache2.2.3,下載地址:http://apache.justdn.org/httpd/binaries/win32/apache_2.2.3-win32-x86-no_ssl.msi?;
    3、? mod_jk-1.2.20-apache-2.2.3.so模塊,,下載地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.20/

    集群與負(fù)載平衡
    ??? 使用mod_jk默認(rèn)的以輪循方式進(jìn)行平衡負(fù)載,而集群方式也是使用這種方法進(jìn)行平衡。Tomcat中的集群原理是通過(guò)組播的方式進(jìn)行節(jié)點(diǎn)的查找并使用TCP連接進(jìn)行會(huì)話的復(fù)制。

    ??? 集群不同于負(fù)載平衡的是,由于集群服務(wù)需要在處理請(qǐng)求之間不斷地進(jìn)行會(huì)話復(fù)制,復(fù)制后的會(huì)話將會(huì)慢慢變得龐大,因此它的資源占用率是非常高的,如果在并發(fā)量大的應(yīng)用中,復(fù)制的會(huì)話大小會(huì)變得相當(dāng)大,而使用的總內(nèi)存更是會(huì)迅速升高。

    ??? 但集群的會(huì)話復(fù)制,增加了系統(tǒng)的高可用性。由于在每臺(tái)服務(wù)器都保存有用戶的Session信息,如果服務(wù)器群中某臺(tái)當(dāng)機(jī),應(yīng)用可以自動(dòng)切換到其它服務(wù)器上繼續(xù)運(yùn)行,而用戶的信息不會(huì)丟失,這提高了應(yīng)用的冗錯(cuò)性。

    ??? 具體采用負(fù)載平衡還是集群,這要看應(yīng)用的需求了。

    安裝配置Apache

    ??? 安裝前請(qǐng)確認(rèn)IIS服務(wù)停止,因?yàn)锳pache可能會(huì)使用80端口.

    1
    、下載 Apache 的安裝程序 apache_2.2.3-win32-x86-no_ssl.exe 后,安裝很簡(jiǎn)單,一路回車,就此略過(guò)。

    2 、安裝完畢后,將下載的 mod_jk-1.2.20-apache-2.2.3.so改名為mod_jk.so并 復(fù)制到 Apache 安裝目錄下的 modules 子目錄中。

    3 、然后進(jìn)入 Apache 安裝目錄下的 conf 子目錄中,打開(kāi) httpd.conf 配置文件,在最后插入以下一行: Include conf/mod_jk.conf

    4、? conf 子目錄下,建立一個(gè)新的配置文件: mod_jk.conf ,此文件為 Apache 加載連接器的配置文件,文件名可修改,但要與 httpd.conf Include 的文件名一致,在logs子目錄下建立日志文件mod_jk.log,mod_jk.conf內(nèi)容如下:

    #?Load?mod_jk?module
    #?Specify?the?filename?of?the?mod_jk?lib
    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?indicates?to?send?SSK?KEY?SIZE
    JkOptions?+ForwardKeySize?+ForwardURICompat?-ForwardDirectories

    #?JkRequestLogFormat
    JkRequestLogFormat?
    " %w?%V?%T "

    #?Mount?your?applications
    JkMount?/*?loadbalancer

    #?You?can?use?external?file?for?mount?points.
    #?It?will?be?checked?for?updates?each?
    60 ?seconds.
    #?The?format?of?the?file?is:?/url
    = worker
    #?/examples/*
    = loadbalancer
    JkMountFile?conf/uriworkermap.properties

    #?Add?shared?memory.
    #?This?directive?is?present?with?
    1.2.10 ?and
    #?later?versions?of?mod_jk
    , ?and?is?needed?for
    #?for?load?balancing?to?work?properly
    JkShmFile?logs/jk.shm

    #?Add?jkstatus?for?managing?runtime?data
    <Location?/jkstatus/>
    ????JkMount?status
    ????Order?deny
    , allow
    ????Deny?from?all
    ????Allow?from?
    127.0.0.1
    </Location>
    注: 該文件中,有兩處設(shè)置比較重要:LoadModule與JkMount。LoadModule中要正確設(shè)置mod_jk的路徑;JkMount指明Apache需要將哪些url進(jìn)行轉(zhuǎn)發(fā),在上面 的設(shè)置中,Apache將會(huì)把url路徑為 /application/* 的請(qǐng)求發(fā)送到mod_jk負(fù)載均衡。通過(guò)該方式,可以配置Apache提供靜態(tài)Web頁(yè)面服務(wù),并把動(dòng)態(tài)頁(yè)面功能轉(zhuǎn)發(fā)到JBOSS服務(wù)器。如果希望所有的服務(wù)都由JBOSS集群服務(wù)提供,則把JKMount設(shè)置為JkMount /* loadbalancer即可。

    5、? conf子目錄下,建立一個(gè)新的配置文件:workers.properties,此文件為負(fù)載平衡的配置文件,文件名不能修改,這是JK默認(rèn)的名字,內(nèi)容如下:
    #?Define?list?of?workers?that?will?be?used
    #?for?mapping?requests
    worker.list
    =loadbalancer,status


    #?Define?Node1
    #?modify?the?host?as?your?host?IP?or?DNS?name.
    worker.node1.port
    =8009
    worker.node1.host
    =localhost
    worker.node1.type
    =ajp13
    worker.node1.lbfactor
    =1
    #worker.node1.cachesize
    =1000


    #?Define?Node2
    #?modify?the?host?as?your?host?IP?or?DNS?name.
    worker.node2.port
    =8009
    worker.node2.host
    =10.225.69.111
    worker.node2.type
    =ajp13
    worker.node2.lbfactor
    =1
    #worker.node2.cachesize
    =1000
    #worker.node2.stopped
    =1


    #?Define?Node3
    #?modify?the?host?as?your?host?IP?or?DNS?name.
    worker.node3.port
    =8009
    worker.node3.host
    =10.225.69.75
    worker.node3.type
    =ajp13
    worker.node3.lbfactor
    =1
    #worker.node3.cachesize
    =1000
    #worker.node3.stopped
    =1


    #?Load-balancing?behaviour
    worker.loadbalancer.type
    =lb
    worker.loadbalancer.balance_workers
    =node1,node2,node3
    worker.loadbalancer.sticky_session
    =1


    #worker.list
    =loadbalancer
    #?Status?worker?for?managing?load?balancer
    worker.status.type
    =status
    ??? 除了通過(guò) JKMount 設(shè)置轉(zhuǎn)發(fā)路徑外,你可以通過(guò) JkMountFile 詳細(xì)設(shè)置哪些 url 需要通過(guò) mod_jk 進(jìn)行負(fù)載均衡轉(zhuǎn)發(fā)。通過(guò)在 APACHE_HOME/conf 目錄下創(chuàng)建文件 uriworkermap.properties 進(jìn)行控制,文件格式為 /url=worker_name:
    #?Simple?worker?configuration?file
    #?Mount?the?Servlet?context?to?the?ajp13?worker

    /*
    =loadbalancer
    !/*.gif
    =loadbalancer
    !/*.jpg
    =loadbalancer
    !/*.png
    =loadbalancer
    !/*.css
    =loadbalancer
    !/*.js
    =loadbalancer
    !/*.htm
    =loadbalancer
    !/*.html
    =loadbalancer

    /prweb/*
    =loadbalancer
    #/jmx-console/*
    =loadbalancer
    #/web-console
    =loadbalancer
    #/web-console/*
    =loadbalancer

    注:以上定義了三個(gè)worker,分別為node1,node2,node2;8009端口是Tomcat默認(rèn)的ajp端口;定義了一個(gè)負(fù)載平衡服務(wù)器loadbalancer,相關(guān)的詳細(xì)說(shuō)明可以看官方的網(wǎng)站文檔:http://tomcat.apache.org/connectors-doc/,其它節(jié)點(diǎn)的定義可以直接Copy,修改一下節(jié)點(diǎn)名及IP就好了。
    A
    worker.list=loadbalancer

    設(shè)定工作的負(fù)載平衡器,各Tomcat節(jié)點(diǎn)不能加入此列表。

    ?????? Bworker.server99.lbfactor

    負(fù)載平衡的權(quán)重比,如果此權(quán)重比越大,則分配到此節(jié)點(diǎn)的請(qǐng)求越多,如以上兩個(gè)節(jié)點(diǎn)的權(quán)重比為1:1,則為平均分配。

    Cworker.loadbalancer.balance_workers=node1,node2,node3

    ?? 指定此負(fù)載平衡器負(fù)責(zé)的Tomcat應(yīng)用節(jié)點(diǎn)。

    Dworker.loadbalancer.sticky_session=true

    ?? 此處指定集群是否需要會(huì)話復(fù)制,如果設(shè)為true,則表明為會(huì)話粘性,不進(jìn)行會(huì)話復(fù)制,當(dāng)某用戶的請(qǐng)求第一次分發(fā)到哪臺(tái)Tomcat后,后繼的請(qǐng)求會(huì)一直分發(fā)到此Tomcat服務(wù)器上處理;如果設(shè)為false,則表明需求會(huì)話復(fù)制。當(dāng)設(shè)置為0(false)時(shí),是基于請(qǐng)求的負(fù)載均衡,為1(true)時(shí)是基于用戶的負(fù)載均衡。

    Eworker.loadbalancer.sticky_session_force=true

    ?? 如果上面的sticky_session設(shè)為true時(shí),建議此處也設(shè)為true,此參數(shù)表明如果集群中某臺(tái)Tomcat服務(wù)器在多次請(qǐng)求沒(méi)有響應(yīng)后,是否將當(dāng)前的請(qǐng)求,轉(zhuǎn)發(fā)到其它Tomcat服務(wù)器上處理;此參數(shù)在sticky_session=true時(shí),影響比較大,會(huì)導(dǎo)致轉(zhuǎn)發(fā)到其它Tomcat服務(wù)器上的請(qǐng)求,找不到原來(lái)的session,所以如果此時(shí)請(qǐng)求中有讀取session中某些信息的話,就會(huì)導(dǎo)致應(yīng)用的null異常。


    參考:
    http://m.tkk7.com/zolly/archive/2006/12/12/Apache_Tomcat.html
    http://www.qqread.com/z/apache/index-0.html
    http://www.javazy.com/contentex/200641293233.shtml
    http://www.newasp.net/tech/java/14456.html
    http://amqir.itpub.net/

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲成_人网站图片| 99爱在线精品免费观看| 亚洲色最新高清av网站| 久久精品国产亚洲AV果冻传媒| 免费毛片在线播放| 免费h片在线观看网址最新| 久久九九全国免费| 一本久久免费视频| 国产成人亚洲午夜电影| 在线观看亚洲AV日韩AV| 亚洲精品在线播放| 久久亚洲精品无码| 国产亚洲一区二区手机在线观看 | 久久精品国产亚洲AV网站| 亚洲高清偷拍一区二区三区| 四虎成人免费网站在线| 91精品免费国产高清在线| 久久aa毛片免费播放嗯啊| 中国一级特黄的片子免费| 国产高潮久久免费观看| 一级毛片大全免费播放下载 | 114一级毛片免费| 久久精品人成免费| 免费国产成人18在线观看| 成人毛片100免费观看| 国产精品美女免费视频观看| 九九久久精品国产免费看小说 | 男女交性永久免费视频播放| 毛片免费观看视频| 最近最好的中文字幕2019免费 | 亚洲AV无码成人专区片在线观看 | 老司机午夜免费视频| 亚洲av无码一区二区三区人妖| 国产色在线|亚洲| 亚洲色成人四虎在线观看| 亚洲国产欧美日韩精品一区二区三区| 亚洲一区二区三区免费在线观看 | 91老湿机福利免费体验| 8x8x华人永久免费视频| 亚洲免费电影网站| 最近最新MV在线观看免费高清|