Apache 2.2 :http://httpd.apache.org/download.cgi,下載msi安裝程序,選擇no ssl版本html
打開conf/httpd.conf去掉如下文本前的註釋符(#)以便讓Apache在啓動時自動加載代理(proxy)模塊。web
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 proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
在下列節點中增長index.jsp,目的是能看到首頁(conf/httpd.conf文件)apache
<IfModule dir_module> DirectoryIndex index.html index.jsp </IfModule>
去掉Includeconf/extra/httpd-vhosts.conf前面的註釋(conf/httpd.conf文件)後端
在conf/extra/httpd-vhosts.conf,配置虛擬站點,在最下面加上tomcat
<VirtualHost *:80> ServerAdmin xxx@126.com ServerName localhost ServerAlias localhost ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On ProxyPassReverse / balancer://cluster/ ErrorLog "logs/thc-error.log" CustomLog "logs/thc-access.log" common </VirtualHost>
說明:這裏balancer://是告訴Apache須要進行負載均衡的代理,後面的cluster是集羣名(能夠隨意取),兩個日誌引擎ErrorLog負責記錄錯誤,CustomLog負責記錄全部的http訪問以及返回狀態,日誌名能夠本身取。服務器
回到httpd.conf,在文檔最下面加上:網絡
ProxyRequests Off <proxy balancer://cluster> BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1 # 若是第二個Tomcat放在另外一臺電腦上那麼就輸入那臺電腦的ip BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2 </proxy>
說明:ProxyRequestsOff 是告訴Apache須要使用反向代理,<proxy balancer://cluster> 用於配置工做在tomcat集羣中的全部節點,這裏的"cluster"必須與上面的集羣名保持一致。Apache經過ajp協議與tomcat進行通訊,ip地址和端口惟一肯定了tomcat節點和配置的ajp接受端口。loadfactor是負載因子,Apache會按負載因子的比例向後端tomcat節點轉發請求,負載因子越大,對應的tomcat服務器就會處理越多的請求,如兩個tomcat都是1,Apache就按1:1的比例轉發,若是是2和1就按2:1的比例轉發。route參數對應後續tomcat配置中的引擎路徑(jvmRoute)session
重啓Apache服務,若是此時訪問http://localhost/將會返回503錯誤,打開剛纔配置的錯誤日誌logs/thc-error.log,能夠看到錯誤緣由是由於後臺服務器沒有響應,由於此時tomcat還沒有配置和啓動。負載均衡
解壓出兩個Tomcat,名字分別爲:tomcat7_1,tomcat7_2。若是tomcat7_1和tomcat7_2不在同一臺服務器上運行,對於端口就不需作改動。打開兩個Tomcat中的server.xml文件jvm
找到
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
在tomcat7_1中把8080改成7080,在tomcat7_2中把8080改成9080
找到<Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />
這是tomcat接收從Apache過來的ajp鏈接請求時使用的端口,tomcat7_1保持不變,把tomcat7_2端口改成9009。注意,這裏的端口對應Apache httpd.conf中BalancerMember中配置的ajp鏈接端口。
<Serverport="9005" shutdown="SHUTDOWN">
找到<Enginename="Catalina" defaultHost="localhost">
Tomcat7_1修改成: <Engine name="Catalina" defaultHost="localhost"jvmRoute="jvm1">
Tomcat7_2修改成: <Engine name="Catalina"defaultHost="localhost" jvmRoute="jvm2">
這裏的jvmRoute對應步驟3.5Apache httpd.conf中BalancerMember中配置的route參數。
找到<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>,打開註釋。
這裏的配置是爲了能夠在集羣中的全部tomcat節點間共享會話(Session)。若是僅僅爲了得到一個可用的tomcat集羣,Cluster只須要這麼配置就能夠了
在每一個須要session共享的web項目中,須要在web.xml中增長
<distributable/>
先啓動apache服務
再啓動tomcat服務
注意apache的網絡監聽端口和tomcat的不要相同