下文給大家?guī)韆pache+tomcat實現(xiàn)負載均衡的3種方式介紹,希望能夠給大家在實際運用中帶來一定的幫助,負載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書籍,今天我們就用創(chuàng)新互聯(lián)在行業(yè)內(nèi)累計的經(jīng)驗來做一個解答。
成都創(chuàng)新互聯(lián)是一家專業(yè)從事網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷、小程序設(shè)計、網(wǎng)站運營為一體的建站企業(yè);在網(wǎng)站建設(shè)告別千篇一律,告別似曾相識,這一次我們重新定義網(wǎng)站建設(shè),讓您的網(wǎng)站別具一格。自適應(yīng)網(wǎng)站建設(shè),實現(xiàn)全網(wǎng)營銷!一站適應(yīng)多終端,一樣的建站,不一樣的體驗!
結(jié)尾
1.首先安裝apache,編譯完成后,通過IP:端口就行訪問,如果返回“it workers”證明Apache啟動成功(注意apache的工程路徑要正確)
2.下載JK,下載地址為http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/,果http云服務(wù)器是Apache2.0.X版本,則必須選擇mod_jk-1.2.31-httpd-2.0.52.so,頁面下方有英文的說明,大家可以看下,我這里宣傳的mod_jk-1.2.23-apache-2.2.x-linux-x86_64.so,跟自己操作系統(tǒng)版本吻合,然后重命名為mod_jk.so,并且賦值777權(quán)限
3.將mod_jk.so拷貝到apache/modules
4.在httpd.conf里增加如下內(nèi)容
include "/usr/local/apache/conf/mod_jk.conf"
5.在conf路徑下新建mod_jk.conf文件,并添加如下內(nèi)容
#加載mod_jk Module
LoadModule jk_module modules/mod_jk.so
#指定 workers.properties文件路徑
JkWorkersFile conf/workers.properties
#指定哪些請求交給tomcat處理,"loadbalancer"為在workers.propertise里指定的負載分配控制器名
JkLogFile logs/mod_jk.log
#JkLogLevel debug
JkMount /*.do loadbalancer
JkMount /*.jsp loadbalancer
6.在conf下新建workers.properties文件,并添加如下內(nèi)容
worker.list=loadbalancer
#此處與mod_jk.conf中保持一致
worker.worker2.port=8009
#tomcat2中 ajp13 端口號,對應(yīng)tomcat配置文件server.xml中Connector port="8009",默認(rèn)8009
worker.worker2.host=127.0.0.1
#worker2的地址,本機loaclhost或者127.0.0.1,遠程直接寫IP
worker.worker2.type=ajp13
#與worker2中的server.xml的protocol保持一致
worker.worker2.lbfactor=1
#負載的權(quán)重值,越高表示負載越大
worker.worker3.port=9009
worker.worker3.host=127.0.0.1
worker.worker3.type=ajp13
worker.worker3.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=worker2,worker3
#指定負載的worker列表,用逗號分隔
worker.loadbalancer..sticky_session=false
#配置session會話是否為粘性
#這樣負載均衡器lb就會盡量保持一個session,也就是使用戶在一次會話中跟同一個Tomcat進行交互
worker.loadbalancer..sticky_session_force=false
worker.loadbalancer.sticky_session=1
#是否啟用session共享
7.下載tomcat并解壓,復(fù)制2份tomcat,保持成為worker2,worker3
修改2個tomcat的server.xml,保證2個tomcat的端口號不一致,具體配置如下,需要修改黑體加粗標(biāo)示
worker2如下:
<?xmlversion='1.0'encoding='utf-8'?>
<Serverport="8005"shutdown="SHUTDOWN">
<ListenerclassName="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on"/>
<ListenerclassName="org.apache.catalina.core.JasperListener"/>
<ListenerclassName="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<ListenerclassName="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Resourcename="UserDatabase"auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"/>
</GlobalNamingResources>
<Servicename="Catalina">
<Connectorport="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"/>
<!--<Engine name="Catalina" defaultHost="localhost">-->
<Enginename="Catalina"defaultHost="localhost"jvmRoute="worker2">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Hostname="localhost"appBase="webapps"
unpackWARs="true"autoDeploy="true"
xmlValidation="false"xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
</Server>
worker3如下:
<?xmlversion='1.0'encoding='utf-8'?>
<Serverport="8006"shutdown="SHUTDOWN">
<ListenerclassName="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on"/>
<ListenerclassName="org.apache.catalina.core.JasperListener"/>
<ListenerclassName="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<ListenerclassName="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Resourcename="UserDatabase"auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"/>
</GlobalNamingResources>
<Servicename="Catalina">
<Connectorport="8081"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Connectorport="9009"protocol="AJP/1.3"redirectPort="8443"/>
<!--<Engine name="Catalina" defaultHost="localhost">-->
<Enginename="Catalina"defaultHost="localhost"jvmRoute="worker3">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Hostname="localhost"appBase="webapps"
unpackWARs="true"autoDeploy="true"
xmlValidation="false"xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
</Server>
8.分別在2個tomcat下建立項目test1,并新增andashu.jsp,內(nèi)容如下:
<%
System.out.println("===========");
%>
9.分別訪問2個tomcat,http://IP:8081/test1/andashu.jsp 以及http://10.14.133.204:8080/test1/andashu.jsp,如果2個tomcat的日志catalina.out里 都打印出===========,證明2個tomcat訪問都o(jì)k
10.分別啟動apache worker2,worker3,用不同的瀏覽器或者不同的機器分別訪問http://IP/test1/andashu.jsp,如果如果2個tomcat的日志catalina.out里 都打印出===========,證明負載均衡搭建成功(這里要用不同瀏覽器或者不同機器訪問)
11.試節(jié)點故障,隨便停掉其中的一臺tomcat,繼續(xù)訪問http://IP/test1/andashu.jsp,能正常訪問
其他2種方式也可以實現(xiàn)負載均衡
2、ajp_proxy
去掉httpd.conf文件中下面內(nèi)容的注釋(刪掉#號),開啟下邊的配置
注意:
除了mod_proxy.so,mod_proxy_balancer.so,mod_proxy_connect.so
如果是采用ajp_proxy,需要加載mod_proxy_ajp.so這個模塊;
如果是采用http_proxy,需要加載mod_proxy_http.so這個模塊;
httpd.conf,刪除剛才jk方式的配置內(nèi)容,增加下邊的配置
conf/extra/httpd-vhosts.conf增加配置
配置完成任務(wù),訪問http://IP:8081/test1/andashu.jsp,檢查是否能正常訪問。
3、http_proxy
http_proxy的配置與ajp_proxy類似,修改方法2的httpd.conf配置如下,其它不變
配置完成任務(wù),訪問http://IP:8081/test/test.jsp,檢查是否能正常訪問
看了以上關(guān)于apache+tomcat實現(xiàn)負載均衡的3種方式介紹,如果大家還有什么地方需要了解的可以在創(chuàng)新互聯(lián)行業(yè)資訊里查找自己感興趣的或者找我們的專業(yè)技術(shù)工程師解答的,創(chuàng)新互聯(lián)技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗了。
當(dāng)前名稱:apache+tomcat實現(xiàn)負載均衡的3種方式介紹
轉(zhuǎn)載來源:http://jinyejixie.com/article46/jjigeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、品牌網(wǎng)站制作、網(wǎng)站排名、網(wǎng)站設(shè)計、定制網(wǎng)站、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)