Windows下Apache+Tomcat7負(fù)載均衡配置方法詳解
準(zhǔn)備工作
Windows Server 2008 R2 Enterprise(2.40GH,8GB,64Bit,192.168.10.212)
2臺(tái)Ubuntu 10.04.4(192.168.10.98,192.168.10.137)
JDK1.7.80
Tomcat7.0.68
Apache2.4.4
1.安裝Apache2.4.4
安裝過(guò)程中沒(méi)什么注意事項(xiàng),一直Next就行了。安裝完成后默認(rèn)開啟Apache服務(wù),可以在瀏覽器上輸入localhost或者127.0.0.1,這時(shí)候會(huì)出現(xiàn)It works的字樣
2.Java環(huán)境
在Ubuntu上的配置網(wǎng)上很多我就不多講了,但是記得配置JAVA_HOME和PATH
3.Tomcat安裝
直接解壓在目錄中就好了,我的目錄在/opt/tomcat7/,在兩臺(tái)Ubuntu上都解壓。可能會(huì)遇到權(quán)限不足的問(wèn)題,這時(shí)候就要敲命令啦,最簡(jiǎn)單粗暴的,莫過(guò)于sudo chmod 777 目錄,鑒于安全問(wèn)題,各位還是妥善地進(jìn)行授權(quán),這就不提了。
開始配置
Apache的配置
1.首先打開一些必要的Module注釋(把前面的#號(hào)去掉就行),在conf/httpd這個(gè)文件中
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule slotmem_shm_module modules/mod_slotmem_shm.so LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
這里我提一下最后兩個(gè)個(gè),我當(dāng)時(shí)只打開了前面幾個(gè),結(jié)果Apache一直啟動(dòng)不起來(lái)
看了看日志發(fā)現(xiàn)一直在報(bào)Failed to lookup provider ‘shm' for ‘slotmem': is mod_slotmem_shm loaded??這個(gè)錯(cuò)誤,我看了看才發(fā)現(xiàn)原來(lái)沒(méi)有打開這個(gè)Module,去掉#號(hào)就不會(huì)報(bào)這個(gè)錯(cuò)誤了;
另外一個(gè)是因?yàn)閳?bào)了(22)Invalid argument: AH01183: Cannot share balancer這個(gè)錯(cuò)誤,打開這個(gè)Module之后就不會(huì)報(bào)錯(cuò)啦。
2.在conf/httpd文件中打開Virtual hosts的注釋
在Include前去掉#號(hào)
3.在conf/extra/httpd-vhosts.conf中添加配置
先把我自己的配置貼出來(lái)
<VirtualHost *:80> ServerAdmin 502053382@qq.com ProxyPass / balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On ProxyPassReverse / balancer://cluster/ ServerName 192.168.10.212 ErrorLog "logs/error.log" CustomLog "logs/access.log" common </VirtualHost> ProxyRequests Off <proxy balancer://cluster> BalancerMember ajp://192.168.10.98:8009 loadfactor=1 route=jvm1 smax=5 max=20 ttl=120 retry=300 timeout=15 BalancerMember ajp://192.168.10.137:8009 loadfactor=1 route=jvm2 smax=5 max=20 ttl=120 retry=300 timeout=15 </proxy>
ProxyPass :將遠(yuǎn)程服務(wù)器映射到本地服務(wù)器的URL空間
balancer:// :代理的指令類型
stickysession : 均衡器粘連會(huì)話名稱。該值常常會(huì)被設(shè)置為類似JSESSIONID或者 PHPSESSIONID之類的值,他依賴于支持會(huì)話的后端應(yīng)用服務(wù)器。如 果后端服務(wù)器使用不同的cookie名稱或者URL編碼的ID(像servlet 容器),使用|來(lái)分開他們。第一個(gè)部分針對(duì)cookie,第二個(gè)針對(duì)路徑。
nofailover : 如果設(shè)為‘On',當(dāng)工作單元被禁用或者出錯(cuò)時(shí),會(huì)話則立即中斷??梢詫?該值設(shè)為On如果后端服務(wù)器不支持會(huì)話復(fù)制(Session replication)。
ProxyRequests : 在使用ProxyPass指令的時(shí)候,ProxyRequests指令通常都應(yīng)該是關(guān)閉 的。
BalancerMember : 均衡成員
loadfactor : 工作單元負(fù)載系數(shù)。用于BalancerMember。它是一個(gè)1到100之間的數(shù) 字,用于定義應(yīng)用于該工作單元的正規(guī)化權(quán)重負(fù)載。
route : 工作單元的路由,用于負(fù)載均衡器中。該路由是附加給會(huì)話ID的一個(gè)值。
smax : 根據(jù)需要最多創(chuàng)建數(shù)量為柔性最大值(Soft Maximum),也就是smax的鏈接。 任何超出smax數(shù)量的鏈接都會(huì)指定一個(gè)生存時(shí)間也就是ttl。
max : 默認(rèn)值為當(dāng)前MPM中每個(gè)進(jìn)程的線程數(shù)量。在Prefork MPM中,該值總是為 1,在Worker MPM中,該值受ThreadsPerChild控制。
ttl : 超出smax連接數(shù)的非活動(dòng)鏈接的生存時(shí)間(Time To Live),單位為秒。Apache 會(huì)關(guān)閉在這段時(shí)間內(nèi)沒(méi)有被用過(guò)的所有鏈接。
retry : 線程池工作單元重試的超時(shí)時(shí)間,以秒為單位。如果到后端服務(wù)器的線程池工 作單元狀態(tài)是出錯(cuò),Apache將不會(huì)遞交任何請(qǐng)求到該服務(wù)器,直到超時(shí)結(jié)束。 這可以令后端服務(wù)器關(guān)閉進(jìn)行維護(hù),并稍后上線。如果值為0則表示總是重試 錯(cuò)誤狀態(tài)的工作單元不等待任何時(shí)間。
timeout : 鏈接超時(shí)時(shí)間,單位為秒。如果未設(shè)置,那么Apache會(huì)一直等到有可用的鏈接 位置。該指令常和max參數(shù)一起使用來(lái)限制到后端服務(wù)器的鏈接。
這樣就差不多配置完了,重啟Apache服務(wù)就可以了。
注意:當(dāng)輸入localhost或者127.0.0.1的時(shí)候已經(jīng)不會(huì)出現(xiàn)It works的字樣,而是會(huì)報(bào)503錯(cuò)誤,這是正常的,因?yàn)楝F(xiàn)在Apache已經(jīng)開起了負(fù)載均衡的功能,已經(jīng)通過(guò)AJP導(dǎo)向?qū)ο驣P上的Tomcat,只是Tomcat還沒(méi)有啟動(dòng)過(guò)。
Tomcat的配置
以192.168.10.98這臺(tái)服務(wù)器為例
使用Vim打開conf下面的server.xml(不會(huì)Vim的請(qǐng)自行腦補(bǔ)╮(╯▽╰)╭)。這里介紹的負(fù)載均衡,是Apache通過(guò)AJP協(xié)議與Tomcat進(jìn)行銜接,所以在Apache中配置的端口號(hào)是Tomcat中AJP的端口號(hào)。
此外,需要在Engine中配置jvmRoute
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
這里的jvmRoute對(duì)應(yīng)的是Apache中的route。(我剛才把這個(gè)去掉不配置,發(fā)現(xiàn)竟然也可以,覺得很神奇,但應(yīng)該是要配置。)
最后還要將
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
這個(gè)注釋打開
至此,配置已經(jīng)完成。同理在192.168.10.137上也這樣配置。
編寫一個(gè)小小的測(cè)試用的test.jsp
<%@ page contentType="text/html;charset=UTF-8" %> <%@ page import="java.util.*"%> <html> <head> <title>ApacheTomcatTest</title> </head> <body> <% out.println("<br> SESSION ID:" + session.getId() + "</br>"); %> </body> </html>
在Tomcat的webapps目錄下面創(chuàng)建一個(gè)balance文件夾,將test.jsp放在該文件夾下面,啟動(dòng)Tomcat
最后在瀏覽器中輸入192.168.10.212/balance/test.jsp
會(huì)發(fā)現(xiàn)SESSION ID的值一直在兩個(gè)數(shù)字之間變換
這就是負(fù)載均衡的體現(xiàn)了。當(dāng)然,輸入192.168.10.212出現(xiàn)的也不會(huì)是It works,而是經(jīng)典的Tomcat首頁(yè)。
對(duì)了,以上是基于三臺(tái)服務(wù)器的
更多關(guān)于Apache+Tomcat7負(fù)載均衡配置方法請(qǐng)點(diǎn)擊下面的相關(guān)鏈接
- Apache,wsgi,django 程序部署配置方法詳解
- 基于Linux搭建Apache網(wǎng)站服務(wù)配置詳解
- 詳解在Ubuntu上的Apache配置SSL(https證書)的正確姿勢(shì)
- 使用 Apache Web 服務(wù)器配置兩個(gè)或多個(gè)站點(diǎn)的方法
- Apache下ModSecurity的安裝啟用與配置
- CentOS 7中 Apache Web 服務(wù)器安裝配置教程
- 阿里云服務(wù)器apache配置SSL證書成功開啟Https(記錄趟過(guò)的各種坑)
- win10 apache配置虛擬主機(jī)后localhost無(wú)法使用的解決方法
- 如何通過(guò)Apache在本地配置多個(gè)虛擬主機(jī)
相關(guān)文章
壓力測(cè)試工具Apache Bench實(shí)現(xiàn)原理及用法解析
這篇文章主要介紹了壓力測(cè)試工具Apache Bench實(shí)現(xiàn)原理及用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08花生殼與MDaemon架設(shè)郵件服務(wù)器案例圖文教程
花生殼與MDaemon架設(shè)郵件服務(wù)器案例圖文教程...2007-08-08Windows Server 2003 英文版 安全手冊(cè)下載
Windows Server 2003 英文版 安全手冊(cè)下載...2007-07-07- Apache為網(wǎng)絡(luò)管理員提供了豐富多彩的功能,包括目錄索引、目錄別名、內(nèi)容協(xié)商、可配置的HTTP錯(cuò)誤報(bào)告、CGI程序的SetUID執(zhí)行、子進(jìn)程資源管理、服務(wù)器端圖象映射、重寫URL、URL拼寫檢查以及聯(lián)機(jī)手冊(cè)man等。也就是說(shuō),如果您在Linux Server上成功安裝配置了Apache之后,您的計(jì)算機(jī)也將隨著Apache的生效而搖身一變,成為一臺(tái)名副其實(shí)的Web Server,這種變化的確是激動(dòng)人心的。2008-03-03
Linux Apache Web 服務(wù)器(續(xù)一)
四、配置Apache基礎(chǔ)篇,讓W(xué)WW服務(wù)器跑起來(lái) Apache服務(wù)器軟件的配置文件主要有:“access.conf”:用于設(shè)置系統(tǒng)中的存取方式和環(huán)境;“httpd.conf”:用于設(shè)置服務(wù)器啟動(dòng)的基本環(huán)境;“srm.conf”:主要用于做文件資源上的設(shè)定;“mime.type”:記錄Apache服務(wù)器所能識(shí)別的MIME格式。2008-03-03又一篇不錯(cuò)的win2003服務(wù)器安全設(shè)置圖文教程
又一篇不錯(cuò)的win2003服務(wù)器安全設(shè)置圖文教程...2007-05-05在Windows 7 上安裝DNS服務(wù)器bind9方法詳解
本文主要介紹在WIN7上安裝bind9 DNS服務(wù)器的方法,非常詳細(xì)希望對(duì)大家有所幫助2018-03-03建立Apache+PHP+MySQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)的動(dòng)態(tài)網(wǎng)站
Apache是目前應(yīng)用最廣的Web服務(wù)器,PHP3是一種類似ASP的腳本語(yǔ)言,目前的發(fā)展趨勢(shì)大有超過(guò)Perl之勢(shì),而MySQL是一個(gè)輕量級(jí)的數(shù)據(jù)庫(kù)系統(tǒng),特別是用于網(wǎng)站建設(shè),這3個(gè)軟件均是自由軟件,是架設(shè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)的動(dòng)態(tài)網(wǎng)站的最佳排檔。2008-03-03Apache、SSL、MySQL和PHP平滑無(wú)縫地安裝
Apache、SSL、MySQL和PHP平滑無(wú)縫地安裝的目的 我們的目標(biāo)是安裝一個(gè)允許我們托管多個(gè)網(wǎng)站的web服務(wù)器,其中一些是針對(duì)電子商務(wù)的安全解決方案,而大部分網(wǎng)站是通過(guò)連接一個(gè)數(shù)據(jù)庫(kù)服務(wù)器并且提取其數(shù)據(jù)的腳本驅(qū)動(dòng)的。2008-03-03