一、准备相关软件
a) Apache HTTP Server 2.2 (http://httpd.apache.org/download.cgi )
b) Tomcat 6.0 (http://tomcat.apache.org/ )
c) Apache Tomcat Connector (http://tomcat.apache.org/connectors-doc/ ) mod_jk-1.2.31-httpd-2.2.3.so 对应Apache HTTP Server 2.2的版本
二、Apache配置
a) 配置Apache + Tomcat
i. 首先将下载的mod_jk-1.2.31-httpd-2.2.3.so复制到Apache HTTP Server安装目录下的modules文件夹下;在Apache HTTP Server的conf目录下新建mod_jk.conf,vhost.conf,workers.properties,uriworkermap.properties(这些配置文件也可以直接写在httpd.conf中,单独提出方便管理)
ii. 在 httpd.conf最后添加两行
include conf/mod_jk.conf
include conf/vhost.conf
iii. 修改 mod_jk.conf
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties
JkLogFile logs/mod_jk.log
JkLogLevel error
iv. 修改 vhost.conf
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "app目录" #指定项目位置最好带引号防止无法识别录路径,可以不要
ServerNamelocalhost #"localhost"将与tomcat中的"Host name"对应,可以配置域名
Jkmount /servlet/* s1 #所有匹配"/servlet/*"的请求都交给s1(tomcat)处,理,s1配置在workers.properties中
RewriteEngine On #开启URL转发
RewriteRule ^/(.+)$ /servlet/UrlRewriteServlet?name=$1 [PT]
</VirtualHost>
v. 修改workers.properties
worker.list=s1
worker.s1.port=8009 #对应Tomcat中的Connector port="8009"
worker.s1.host=localhost #Tomcat所在服务器IP
worker.s1.type=ajp13 #类型
worker.s1.lbfactor=1 #权重,值越高,分得的请求越多
worker.list=s2
worker.s2.port=8009 #对应Tomcat中的 Connector port="8009"
worker.s2.host=www.abc.com #Tomcat所在服务器IP
worker.s2.type=ajp13 #类型
worker.s2.lbfactor=1 #权重,值越高,分得的请求越多
vi. 修改uriworkermap.properties
#所有请求都由s1这个server处理
/*=s1
#所有包含jkstatus请求的都由status这个server处理
/jkstatus=s1
#所有以.gif结尾的请求都不由s1这个server处理,以下几个都是一样的意思
!/*.gif=s1
!/*.jpg=s1
!/*.png=s1
!/*.css=s1
!/*.js=s1
!/*.htm=s1
!/*.html=s1
b) 配置Apache转发
i. 修改httpd.conf,去掉“#”
#LoadModule rewrite_module modules/mod_rewrite.so
ii. 修改vhost.conf文件,在VirtualHost节点下添加
RewriteEngine On #打开转发
RewriteRule ^/(.+)$ /servlet/UrlRewriteServlet?name=$1 [PT]
三、Tomcat配置
a) 配置Connector与workers.properties中的port对应
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
b) 配置Host name与 vhost.conf的ServerName 对应
<Host name="localhost" appBase="webapps">