apache+JK+tomcat負載均衡配置(windows)
實驗環境的系統已經安裝好了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頁面:
選擇圖中紅色標註的連結開啟如下:
選擇圖中紅色標註的連結開啟如下:
選擇圖中紅色標註的連結開啟如下:
選擇圖中紅色標註的連結開啟如下:
選擇當前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檔案的末尾新增如下內容:
# module mod_jk config file Include conf/extra/mod_jk.conf
mod_jk.conf
Apache2.2\conf\extra\目錄下新建檔案:mod_jk.conf,內容如下:
#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,內容如下:
# 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,內容如下:
#所有請求都由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
配置檔案片段如下:
<!-- 兩個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
配置檔案片段如下:
<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內容如下:
<% 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內容如下:
<% 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回車,不斷重新整理頁面會看到兩個頁面交替顯示如下:
同時可以觀察到兩個tomcat的後臺視窗會交替列印日誌資訊:
到此基本實現了負載均衡的配置。
在瀏覽器裡位址列裡輸入http://localhost/jkstatus回車,可以看到當前的server的一些執行情況:
【四】配置apache處理靜態檔案
[1#] 修改頁面tomcat-7.0.2_1\webapps\test\test.jsp內容如下:
<% 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內容如下:
<% 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配置檔案
#所有請求都由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 http server處理,就不再需要tomcat來處理。
相關文章
- nginx配置+uwsgi+負載均衡配置Nginx負載
- Nginx/Httpd負載均衡tomcat配置Nginxhttpd負載Tomcat
- 使用Nginx配置TCP負載均衡NginxTCP負載
- IdentityServer4 負載均衡配置IDEServer負載
- windows第七層負載均衡 基於IIS的ARR負載均衡詳解Windows負載
- 【Nginx】Windows平臺下配置Nginx服務實現負載均衡NginxWindows負載
- windows伺服器第四層負載均衡_基於NLB負載均衡詳解Windows伺服器負載
- nginx安裝及負載均衡配置Nginx負載
- 做了反向代理和負載均衡的nginx配置檔案簡單示例(nginx.conf) HTTP負載均衡/TCP負載均衡負載NginxHTTPTCP
- LVS負載均衡配置與keepalive服務配置負載
- gRPC負載均衡(自定義負載均衡策略)RPC負載
- gRPC負載均衡(客戶端負載均衡)RPC負載客戶端
- 負載均衡負載
- Ribbon負載均衡策略與自定義配置負載
- docker下nginx反向代理和負載均衡配置DockerNginx負載
- RHEL 7配置HAProxy實現Web負載均衡Web負載
- Nginx 兩臺伺服器配置負載均衡!!!Nginx伺服器負載
- nginx配置web服務|反向代理|負載均衡NginxWeb負載
- 阿里雲負載均衡SSL證書配置(更新)阿里負載
- IP負載均衡負載
- WebSocket負載均衡Web負載
- nginx負載均衡Nginx負載
- NGINX 負載均衡Nginx負載
- 【Nginx】負載均衡Nginx負載
- 負載均衡---ribbon負載
- LoadBalancer負載均衡負載
- LVS 負載均衡負載
- 負載均衡技術(一)———負載均衡技術介紹負載
- 解密負載均衡技術和負載均衡演算法解密負載演算法
- JMeter分散式壓測/JMeter負載新增/jmeter負載均衡/jmeter Windows系統壓測負載新增JMeter分散式負載Windows
- 負載均衡技術(二)———常用負載均衡服務介紹負載
- 【知識分享】四層負載均衡和七層負載均衡負載
- 記一次nginx負載均衡配置情況Nginx負載
- Nginx負載均衡模式Nginx負載模式
- 漫談負載均衡負載
- 負載均衡簡介負載
- golang grpc 負載均衡GolangRPC負載
- gRPC的負載均衡RPC負載
- 負載均衡詳解負載