apache+JK+tomcat負載均衡配置(windows)

花露絲雨發表於2014-10-05
本文主要是記錄windows下apache+JK+tomcat負載均衡的配置過程,方便自己以後備用,也希望能給剛接觸的xd提供參考。
實驗環境的系統已經安裝好了apache2.2.17,安裝路徑D:\Program Files\Apache2.2\

apache http server的安裝過程參見http://sjsky.iteye.com/blog/918769
本文的大概章節分類:
  • 1.下載mod_jk
  • 2.修改apache相關配置
  • 3.tomcat配置修改
  • 4.測試負載均衡
  • 5.配置apache處理靜態檔案

【一】下載mod_jk
開啟tomcat 的主頁:http://tomcat.apache.org,左側download頁面:
apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio

選擇圖中紅色標註的連結開啟如下:
apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio

選擇圖中紅色標註的連結開啟如下:
apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio

選擇圖中紅色標註的連結開啟如下:
apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio

選擇圖中紅色標註的連結開啟如下:
apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio
選擇當前apache2.2.17版本對應的mod_jk檔案下載,下載完把檔案複製到Apache2.2\modules\mod_jk-1.2.31-httpd-2.2.3.so

【二】修改apache相關配置
httpd.conf
路徑:D:\Program Files\Apache2.2\conf\httpd.conf
在httpd.conf檔案的末尾新增如下內容:
Java程式碼 

# module mod_jk config file Include conf/extra/mod_jk.conf



mod_jk.conf
Apache2.2\conf\extra\目錄下新建檔案:mod_jk.conf,內容如下:
Java程式碼 

#load module mod_jk-1.2.31-httpd-2.2.3.so is for Apache 2.2.x. LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so #配置 mod_jk conf #載入叢集中的workers JkWorkersFile conf/workers.properties #載入workers的請求處理分配檔案 JkMountFile conf/uriworkermap.properties #指定jk的日誌輸出檔案 JkLogFile logs/mod_jk.log #指定日誌級別 JkLogLevel info



workers.properties
Apache2.2\conf\目錄下新建檔案:workers.properties,內容如下:
Java程式碼 

# worker列表 worker.list=LB_worker,jkstatus #第一個worker的配置,名為worker_1 #tomcat的主機地址,如不為本機,請填寫ip地址 worker.worker_1.host=localhost #ajp13 埠號,對應tomcat配置檔案server.xml中Connector port="8009",預設8009 worker.worker_1.port=8009 worker.worker_1.type=ajp13 #負載的權重值,越高表示負載越大 worker.worker_1.lbfactor=1 #第二個worker的配置,名為worker_2 worker.worker_2.host=localhost #ajp13 埠號,對應tomcat配置檔案server.xml中Connector port="9009" worker.worker_2.port=9009 worker.worker_2.type=ajp13 worker.worker_2.lbfactor=1 #LB_worker,用於負載均衡分發的控制器 worker.LB_worker.type=lb #重試次數 worker.LB_worker.retries=3 #指定負載的worker列表,用逗號分隔 worker.LB_worker.balance_workers=worker_1,worker_2 #配置session會話是否為粘性 #這樣負載均衡器lb就會盡量保持一個session,也就是使使用者在一次會話中跟同一個Tomcat進行互動 worker.LB_worker.sticky_session=true #如果sticky_session設為true時,此處一般設為false worker.LB_worker.sticky_session_force=false #設定執行狀態的控制器 worker.jkstatus.type=status


workers.properties相關引數說明:
http://tomcat.apache.org/connectors-doc/reference/workers.html
  • worker.loadbalancer.sticky_session=true    該引數指定叢集是否實現會話粘性,如果設為 true ,則表明為會話粘性,同一個session的請求會分發到同一臺tomcat;當多個tomcat有一個session管理器時該值設為 false。
  • worker.loadbalancer.sticky_session_force=false     該引數僅在上面sticky_session=true時才起作用。如果上面的 sticky_session 設為 true 時,建議此處也設為 false


uriworkermap.properties
Apache2.2\conf\目錄下新建檔案:uriworkermap.properties,內容如下:
Java程式碼 

#所有請求都由LB_worker這個worker處理 /*=LB_worker #所有包含jkstatus請求的都由名稱叫jkstatus的這個worker處理 /jkstatus=jkstatus


uriworkermap.properties相關引數說明:
http://tomcat.apache.org/connectors-doc/reference/uriworkermap.html

【三】tomcat配置修改
有關JDK、tomcat的基本安裝配置本文不再作詳細介紹,重點介紹與當前負載均衡配置相關的內容,以tomcat7.0.2為例來配置。
[1#] 修改tomcat-7.0.2_1\conf\server.xml
配置檔案片段如下:
Xml程式碼 

<!-- 兩個tomat的埠區分開 --> <Connector URIEncoding="UTF-8" port="8082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!-- Define an AJP 1.3 Connector on port 8009 --> <!-- port="8009" 對應於workers.properties中worker.worker_1.port=8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <!-- jvmRoute 的值對應於workers.properties中worker_1 --> <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker_1">



[1#] 修改tomcat-7.0.2_2\conf\server.xml
配置檔案片段如下:
Xml程式碼 

<Connector URIEncoding="UTF-8" port="9082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="9443" /> <!-- Define an AJP 1.3 Connector on port 9009 --> <!-- port="9009" 對應於workers.properties中worker.worker_2.port=8009--> <Connector port="9009" protocol="AJP/1.3" redirectPort="9443" /> <!-- jvmRoute 的值對應於workers.properties中worker_2 --> <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker_2">



【四】測試負載均衡
[1#] 新建測試頁面test.jsp
新建頁面tomcat-7.0.2_1\webapps\test\test.jsp內容如下:
Html程式碼 

<% System.out.println("this is tomcat server nod 1"); %> <% out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>this is tomcat server nod 1"); %>


新建頁面tomcat-7.0.2_2\webapps\test\test.jsp內容如下:
Html程式碼 

<% System.out.println("this is tomcat server nod 2"); %> <% out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>this is tomcat server nod 2"); %>


[2#]測試負載均衡
啟動好兩個tomcat和apache,在瀏覽器裡輸入http://localhost/test/test.jsp回車,不斷重新整理頁面會看到兩個頁面交替顯示如下:
apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio
apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio
同時可以觀察到兩個tomcat的後臺視窗會交替列印日誌資訊:

apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio

apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio

到此基本實現了負載均衡的配置。

在瀏覽器裡位址列裡輸入http://localhost/jkstatus回車,可以看到當前的server的一些執行情況:

apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio

【四】配置apache處理靜態檔案
[1#] 修改頁面tomcat-7.0.2_1\webapps\test\test.jsp內容如下:
Html程式碼 

<% System.out.println("this is tomcat server nod 1"); %> <!-- 增加一個圖片顯示 --> <IMG height=100 src="images/inf.jpg" width=100 border=0><br> <% out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>this is tomcat server nod 1"); %>


修改頁面tomcat-7.0.2_2\webapps\test\test.jsp內容如下:
Html程式碼 

<% System.out.println("this is tomcat server nod 2"); %> <!-- 增加一個圖片顯示 --> <IMG height=100 src="images/inf.jpg" width=100 border=0><br> <% out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>this is tomcat server nod 2"); %>


[2#] 修改uriworkermap.properties配置檔案
Java程式碼 

#所有請求都由LB_worker這個worker處理 /*=LB_worker #所有包含jkstatus請求的都由名稱叫jkstatus的這個worker處理 /jkstatus=jkstatus #所有以.gif、.jpg等等結尾的請求都不經過名稱叫LB_worker的worker處理 # ! 表示 非 的意思 !/*.jpg=LB_worker


[3#] 靜態檔案存放位置
靜態檔案放在Apache2.2\htdocs\下,它的目錄結構和webapps下的目錄結構基本相同,新建好相應的目錄結構:htdocs\test\images\,複製test.jsp頁面用到的inf.jpg圖片到images\下,此時基本完成了相應的配置。
此時在瀏覽器裡在開啟http://localhost/test/test.jsp,,重新整理又將會看到如下兩個頁面交替出現:

apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio

apache+JK+tomcat負載均衡配置(windows) - Canca Torvals - Ant Software Studio
此時靜態圖片,是由apache http server處理,就不再需要tomcat來處理。

相關文章