目标 :
使用 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