APACHE 2.2.15+TOMCAT6.0.26配置負載均衡
使用 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
ProxyPassReverse / 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
APACHE 2.2.15+TOMCAT6.0.26配置負載均衡