APACHE 2.2.15+TOMCAT6.0.26配置負載均衡

語言: CN / TW / HK

目標 :

使用 apache 和 tomcat 配置一個可以應用的 web 網站,要達到以下要求:

1、 Apache 做為 HttpServer ,後面連線多個 tomcat 應用例項,並進行負載均衡。

2、 為系統設定 Session 超時時間,包括 Apache 和 tomcat

3、 為系統遮蔽檔案列表,包括 Apache 和 tomcat

注:本例程以一臺機器(作業系統 windows 2008)為例子,即同一臺機器上裝一個 apache 和 4個 Tomcat 。

一、下載軟體

httpd-2.2.15-win32-x86-no_ssl

jdk-6u18-windows-i586.exe

apache-tomcat-6.0.26-windows-x86.zip

二、安裝程式

1、 jdk 按預設安裝,在環境變數中設定 JA V A_HOME

(預設的 JDK 目錄為 C:\Program Files\Java\jdk1.6.0_18)

A 、進入 windows 桌面,右鍵選擇 “ 我的電腦 ” -->“ 屬性 ”

B 、選擇 “ 高階 ” 頁籤,點開 “ 環境變數 ”

C 、在 “ 系統變數 ” 下點選新建彈出 “ 新建系統變數 ” ,變數名輸入 “JA V A_HOME” ,變數值 輸入 “C:\Program Files\Java\jdk1.6.0_18” 後點擊確定。

2、 APAHCE 安裝目錄:D:\Apache。

3、四個 TOMCAT 目錄:自行解壓到 (D:\Tomcat叢集伺服器 )下。分別為 tomcat6.0, tomcat6.01, tomcat6.02, tomcat6.03

三、配置

1、 Apache 配置

1.1、 httpd.conf 配置

修改 APACHE 的配置檔案 D:\Apache \conf\httpd.conf

將以下 Module 的註釋去掉,這裡並沒有使用 mod_jk.so進行 apache 和 tomcat 的連結,從 2.X 以後 apache 自身已集成了 mod_jk.so的功能。只需簡單的把下面幾行去掉註釋,就相當 於以前用 mod_jk.so比較繁瑣的配置了。這裡主要採用了代理的方法,就這麼簡單。 LoadModule proxy_module modules/mod_proxy.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

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

再找到 加上 index.jsp 修改成

DirectoryIndex index.html index.jsp

1.1.1、 在最下面加入

ProxyRequests Off

BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1

BalancerMember ajp:// 127.0.0.1:9009 loadfactor=1 route=jvm2

BalancerMember ajp:// 127.0.0.1:9001 loadfactor=1 route=jvm3

BalancerMember ajp:// 127.0.0.1:9003 loadfactor=1 route=jvm4

上面的四個 BalancerMember 成員是我們配置的 tomcat 叢集。後面會說明的。

1.2、 httpd-vhosts.conf 設定

接下來進行虛擬主機的設定。 APACHE 的虛擬主機設定如下:

首先要修改 conf/httpd.conf找到 (#Include conf/extra/httpd-vhosts.conf)

把註釋去掉。

Virtual hosts

Include conf/extra/httpd-vhosts.conf

在檔案(extra/httpd-vhosts.conf)最下面加入

ServerAdmin

ServerName localhost

ServerAlias localhost

ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On

ProxyPa***everse / balancer://cluster/

其中的域名和路徑根據你自己情況設定

然後再設定 TOMCAT 虛擬主機

2 配置 tomcat

2.1. 配置 server 的關閉

我們需要在一臺機器上跑 4 個不同的 tomcat ,需要修改不同的 tomcat 的關閉口,避免出 現埠被佔用的情況。其中 tomcat6.0用預設值,不修改。其他三個修改。在

tomcat6.01\conf, tomcat6.02\conf下和 tomcat6.03\conf下的 server.xml 中找到 server, 將:

改為

XXXX 在這裡表示不同的埠:我的其它三個 tomcat 分別使用 9005, 8006 , 9007 2.2. 配置 Engine

把原來的配置註釋掉,把下面一句去掉註釋。並標明 jvmRoute="jvm2".

以下是原來的配置。

其他(tomcat6.02和 tomcat6.03)也要同樣 配置。注意:jvmRoute 配置不要一樣。

2.3. 配置 Connector

原來的預設配置。

這裡是 apache 和 tomcat 連結的關鍵,前臺 apache 就是通過 AJP 協議與 tomcat 進行通訊的, 以完成負載均衡的作用。也可以用 HTTP 協議。大家注意它們是如何連線通訊的,上面的紅 色部分就是連線的介面了。

把其他三個 tomcat 的 port分別改成與上面

#與 tomcat6.0對應, route 與 對應。

BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1

#與 tomcat6.01對應, route 與 對應。

BalancerMember ajp:// 127.0.0.1:9009 loadfactor=1 route=jvm2