日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache负载均衡+Tomcat集群

發(fā)布時間:2024/4/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache负载均衡+Tomcat集群 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://weijie.blog.51cto.com/340746/68195

APACHE 2.2.8+TOMCAT6.0.14配置負載均衡 目標: 使用 apache 和 tomcat 配置一個可以應(yīng)用的 web 網(wǎng)站,要達到以下要求: 1、? Apache 做為 HttpServer ,后面連接多個 tomcat 應(yīng)用實例,并進行負載均衡。 2、? 為系統(tǒng)設(shè)定 Session 超時時間,包括 Apache 和 tomcat 3、? 為系統(tǒng)屏蔽文件列表,包括 Apache 和 tomcat 注:本例程以一臺機器為例子,即同一臺機器上裝一個apache和4個Tomcat。 一、前期準備工作:安裝用的程序(前提保證已安裝了JDK1.5以上的版本) APAHCE 2.2.8下載:apache_2.2.8-win32-x86-no_ssl.msi TOMCAT6.0.14下載:apache-tomcat-6.0.14.zip直接解壓。 二、安裝過程 APAHCE安裝目錄:D:\Apache。 四個TOMCAT目錄:自行解壓到(D:\Tomcat集群服務(wù)器\)下。分別為 tomcat6.0,tomcat6.01,tomcat6.02,tomcat6.03 這幾個安裝過程就不詳細說明了。 三、配置 1、Apache配置 1.1、httpd.conf配置 修改APACHE的配置文件D:\Apache \conf\httpd.conf 將以下Module的注釋去掉,這里并沒有使用mod_jk.so進行apache和tomcat的鏈接,從2.X以后apache自身已集成了mod_jk.so的功能。只需簡單的把下面幾行去掉注釋,就相當于以前用mod_jk.so比較繁瑣的配置了。這里主要采用了代理的方法,就這么簡單。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
再找到<IfModule dir_module></IfModule>加上index.jsp修改成 <IfModule dir_module> DirectoryIndex index.html index.jsp </IfModule> 1.1.1、? 在最下面加入 ProxyRequests Off <proxy balancer://cluster> BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1 BalancerMember ajp:// 127.0.0.1:9009 loadfactor=1 route=jvm2 BalancerMember ajp:// 127.0.0.1:9001 loadfactor=1 route=jvm3 BalancerMember ajp:// 127.0.0.1:9003 loadfactor=1 route=jvm4 </proxy> 上面的四個BalancerMember成員是我們配置的tomcat集群。后面會說明的。 1.2、httpd-vhosts.conf設(shè)置 接下來進行虛擬主機的設(shè)置。APACHE的虛擬主機設(shè)置如下: 首先要修改 conf/httpd.conf找到(#Include conf/extra/httpd-vhosts.conf) 把注釋去掉。 # Virtual hosts Include conf/extra/httpd-vhosts.conf 在文件(extra/httpd-vhosts.conf)最下面加入 <VirtualHost *:80> ???????? ServerAdmin weijie@126.com ???????? ServerName localhost ???????? ServerAlias localhost ???????? ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On ???????? ProxyPassReverse / balancer://cluster/ </VirtualHost> 其中的域名和路徑根據(jù)你自己情況設(shè)置 然后再設(shè)置TOMCAT虛擬主機 2 配置 tomcat 2.1.? 配置 server 的關(guān)閉 我們需要在一臺機器上跑 4 個不同的 tomcat ,需要修改不同的 tomcat 的關(guān)閉口,避免出現(xiàn)端口被占用的情況。其中tomcat6.0用默認值,不修改。其他三個修改。在tomcat6.01\conf, tomcat6.02\conf下和tomcat6.03\conf下的 server.xml 中找到 server, 將: <Server port="8005" shutdown="SHUTDOWN"> 改為 <Server port="XXXX" shutdown="SHUTDOWN"> XXXX 在這里表示不同的端口:我的其它三個 tomcat 分別使用 9005,8006 , 9007 ?? 2.2. 配置 Engine 把原來的配置注釋掉,把下面一句去掉注釋。并標明jvmRoute="jvm2". <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm2">???????? 以下是原來的配置。 <!-- <Engine name="Catalina" defaultHost="localhost">? --> 其他(tomcat6.02和tomcat6.03)也要同樣 配置。注意:jvmRoute配置不要一樣。 <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm3">? <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm4">? 2.3. 配置 Connector 原來的默認配置。 <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 這里是apache和tomcat鏈接的關(guān)鍵,前臺apache就是通過AJP協(xié)議與tomcat進行通信的,以完成負載均衡的作用。也可以用HTTP協(xié)議。大家注意它們是如何連接通信的,上面的紅色部分(port="8009")就是連接的接口了。 把其他三個tomcat的<Connector port="XXX" />port分別改成與上面 <proxy balancer://cluster> #與tomcat6.0對應(yīng),route與<Engine jvmRoute="jvm1">對應(yīng)。 BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1 #與tomcat6.01對應(yīng),route與<Engine jvmRoute="jvm2">對應(yīng)。 BalancerMember ajp:// 127.0.0.1:9009 loadfactor=1 route=jvm2 #與tomcat6.02對應(yīng),route與<Engine jvmRoute="jvm3">對應(yīng)。 BalancerMember ajp:// 127.0.0.1:9001 loadfactor=1 route=jvm3 #與tomcat6.03對應(yīng),route與<Engine jvmRoute="jvm4">對應(yīng)。 BalancerMember ajp:// 127.0.0.1:9003 loadfactor=1 route=jvm4 </proxy> 中的端口對應(yīng),tomcat6.01 的ajp端口port:9009. tomcat6.02 的ajp端口port:9001。tomcat6.03 的ajp端口port:9003.一定要與上面的一致。同時也要把redirectPort的值改成唯一的,確保四個tomcat的都不一樣。 2.5.配置Cluster(每個tomcat中都要修改) 原來的配置。 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 修改為以下的代碼:<Receiver port=”XX”/>port也要保證唯一性。 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"? channelSendOptions="6"> <Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6"/> <!-- <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="5001" selectorTimeout="100" 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"/> <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/> </Channel> <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> <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.ClusterSessionListener"/> </Cluster> 這個設(shè)置是主要用以tomcat的集群。 四、啟動服務(wù),測試tomcat自帶的例子 1、測試apache和tomcat協(xié)作。 先在每個tomcat中的\webapps\ROOT下的index.jsp下面加上以下的測試代碼部分:(X代表不同的tomcat的輸出不同的信息),把index.html刪除,以免影響測試效果。在最后面的加上.即</table></body>之間。 <% System.out.println("tomcat6.0X ?deal ?with ?request"); %> 然后再通過http:// 127.0.0.1來訪問一下,就會出現(xiàn)大家熟悉的貓貓。 然后再通過分別訪問 http:// 127.0.0.1:8080, http:// 127.0.0.1:9080,http:// 127.0.0.1:8081,http:// 127.0.0.1:9002它們訪問的內(nèi)容和上面的http:// 127.0.0.1是一樣的。 這樣就說明apache和TOMCAT整合成功! 2、測試均衡器 通過http:// 127.0.0.1多次訪問,要想看到真正的效果,必須用一些壓力測試工具,可用微軟Microsoft Web Application Stress Tool進行簡單壓力測試,不然你靠不停刷新是體現(xiàn)不出來的,你只會在一個tomcat的控制臺有輸出結(jié)果。只用用壓力測試工具模擬大量用戶同時訪問,你會發(fā)現(xiàn)四個tomcat控制臺均有打出控制信息,說明均衡器工作正常。

本文出自 “魏杰的技術(shù)專欄” 博客,請務(wù)必保留此出處http://weijie.blog.51cto.com/340746/68195

?

總結(jié)

以上是生活随笔為你收集整理的Apache负载均衡+Tomcat集群的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。