第一部分——下載
1.1: 百度搜索apache httpd關鍵字,第一個鏈接既是官方下載地址。如果這一步不會,此篇文章不適合你閱讀,請自行停止。
1.2:進入官網http://httpd.apache.org/,點擊左邊菜單download鏈接進入下載頁,選擇穩定版最新版httpd2.4.26
1.3 點擊windows下載鏈接
1.4 點擊ApacheHaus鏈接
1.5 根據自己電腦位數選擇下載包,我選擇的是windows 64位的下載包
1.6 下載完成后名字為httpd-2.4.26-x64-vc14.zip,解壓后,
進入httpd-2.4.26-x64-vc14\Apache24\bin目錄,看到了啟動集群程序的httpd.exe,
和httpd-2.4.26-x64-vc14\Apache24\conf目錄下,看到了集群配置文件httpd.conf
至此,下載完成。
第二部分——啟動
2.1 編輯C:\Windows\System32\drivers\etc\hosts文件,用文本編輯器打開hosts,添加新的兩行IP映射:
127.0.0.1 www.joyce.com
localhost www.joyce.com
2.2 httpd-2.4.26-x64-vc14\Apache24\conf\httpd.conf 修改如下:
修改SRVROOT變量為實際路徑:
修改集群監聽IP及端口: ServerName www.joyce.com:80
修改log日志文件名: ErrorLog "logs/httpd-error.log" (非常重要!啟動中除了80端口被占用錯誤不能被記錄其中,其它所有錯誤都記錄其中!尤其是httpd.exe啟動窗口一閃而過問題。起一個與眾不同的名字,方便在不知道log日志具體位置的時候,全局查找。 如果發現80端口被占用,請參考文章: http://www.cnblogs.com/gsls200808/p/4506301.html )
2.3 選擇集群策略。放開以下XXX.so注釋,方便添加集群tomcat:
1 ############################################################################## 2 # 以下3種負載均衡策略,只開放一種即可 3 ############################################################################## 4 #按照繁忙程度,總是給活躍請求數最少的服務器 5 LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so 6 #按照請求次數 7 LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so 8 #按照流量均衡 9 LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
1 ############################################################################## 2 # 以下是代理相關及ajp協議相關的功能模塊,使session共享 3 ############################################################################## 4 LoadModule proxy_module modules/mod_proxy.so 5 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 6 LoadModule proxy_connect_module modules/mod_proxy_connect.so 7 LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 8 LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
2.4 雙擊D:\jiqun\Apache24\bin\httpd.exe,打開一個窗口並且不關閉,則集群服務器啟動成功。
鼠標會一直閃啊閃,並且黑色窗口不關閉。
2.5 驗證啟動成功,在瀏覽器地址欄輸入www.joyce.com展示如下:
第三部分 tomcat集群例子
3.1 准備兩個集群tomcat。我這里用的是apache-tomcat2-8.0.44,由於是集群本機運行,需要不同的tomcat分別設置不同端口,確保其正常運行:
准備兩個tomcat進行集群測試。
3.2 修改集群tomcat端口及jvmRoute
第一個集群tomcat: 修改apache-tomcat1-8.0.44\conf\server.xml端口以及配置:
修改Server port為8001: <Server port="8001" shutdown="SHUTDOWN">
修改HTTP端口為8002: <Connector port="8002" protocol="HTTP/1.1"
修改AJP集群用到的端口為50001: <Connector port="50001" protocol="AJP/1.3" redirectPort="8443" />
增加集群用到的jvmRoute="tomcat1": <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
第二個集群tomcat: 修改apache-tomcat2-8.0.44\conf\server.xml端口以及配置:
修改Server port為8003: <Server port="8003" shutdown="SHUTDOWN">
修改HTTP端口為8004: <Connector port="8004" protocol="HTTP/1.1"
修改AJP集群用到的端口為50002: <Connector port="50002" protocol="AJP/1.3" redirectPort="8443" />
增加集群用到的jvmRoute="tomcat2": <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
3.3 修改集群配置文件httpd.conf。修改D:\jiqun\Apache24\conf\httpd.conf,在最末尾處添加:
1 ProxyPass /distributed balancer://cluster01/ stickysession=JSESSIONID 2 ProxyPassReverse / balancer://cluster01/ 3 <proxy balancer://cluster01> 4 BalancerMember ajp://www.joyce.com:50001/distributed loadfactor=1 route=tomcat1 5 BalancerMember ajp://www.joyce.com:50002/distributed loadfactor=1 route=tomcat2 6 </proxy>
3.4 集群tomcat session共享
當我們需要多個tomcat集群,並且tomcat之間共享session時,需要做如下配置:
1,在tomcat配置文件server.xml中以下這行代碼放開注釋:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
2,要在要將web.xml文件<web-app>元素的最后加上: <distributable/> 兩個地方的web.xml,一個是應用程序的WEB-INF\web.xml,另一個是tomcat/conf/web.xml(不知道有沒有用,反正我加上了)
3.5 添加分布式應用程序。在兩個tomcat下模擬增加application應用程序:
在apache-tomcat1-8.0.44\webapps和apache-tomcat2-8.0.44\webapps兩個目錄下新建myapp文件夾,代替我們的發布應用,兩個myapp文件夾下新建index.jsp內容為:
<html>
<head>
<title>helloapp</title>
</head>
<body>
<h2>tomcat2</h2> <br/> <br/>
<% System.out.println("call index.jsp"); %>
SessionID: <%=session.getId() %>
</body>
</html>
各自取名tomcat1和tomcat2
3.6 驗證集群以及session共享
tomcat2的session是 *AA39F
tomcat1的session是 *AA39F ,說明兩個tomcat session共享成功,雖然sessionid 的 .tomcat1后綴表明該session來自服務器tomcat1,但你提交的寫入session中的屬性值仍然可以讀出。
驗證成功!集群部署成功!session共享成功!
集群項目管理文檔截圖: