日期:2014-05-17  浏览次数:20815 次

apache jk 转发

一、准备相关软件

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目录" #指定项目位置最好带引号防止无法识别录路径,可以不要

ServerName localhost #"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"