当前位置: 首页 > 工具软件 > mod_jk > 使用案例 >

linux apache mod_jk,利用 mod_jk 整合 Apache HTTP Server 与 Tomcat 配置(linux)

艾安和
2023-12-01

Apache HTTP Server 官方网站:http://httpd.apache.org/

Apache Tomcat 官方网站:http://tomcat.apache.org/

mod_jk 所有版本列表:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/

测试环境:

apache 2.2.3

apache-tomcat 6.0.35

jdk1.6.0_34

下载 mod_jk.so:

wget http://bukn.org:8001/downloads/mod_jk/32/mod_jk.so -P /usr/lib/

wget http://bukn.org:8001/downloads/mod_jk/64/mod_jk.so -P /usr/lib64/httpd/modules/

chmod +x /usr/lib/mod_jk.so

chmod +x /etc/httpd/modules/mod_jk.so

配置 mod_jk.conf

touch /etc/httpd/conf.d/mod_jk.conf

vi /etc/httpd/conf.d/mod_jk.conf

mod_jk.conf 内容如下:

# (httpd.conf)

# 加载 mod_jk 模块

LoadModule jk_module modules/mod_jk.so

#

# Configure mod_jk

#

JkWorkersFile conf/workers.properties

JkMountFile conf/uriworkermap.properties

JkLogFile logs/mod_jk.log

JkLogLevel warn

在conf目录新建workers.properties与uriworkermap.properties文件并进行修改

#

# workers.properties

#

# list the workers by name

worker.list=tomcatserver, status

# localhost server 1

# ------------------------

worker.s1.port=8109

worker.s1.host=localhost

worker.s1.type=ajp13

# localhost server 2

# ------------------------

worker.s2.port=8209

worker.s2.host=localhost

worker.s2.type=ajp13

worker.s2.stopped=1

worker.tomcatserver.type=lb

worker.retries=3

worker.tomcatserver.balanced_workers=s1, s2

worker.tomcatserver.sticky_session=1

worker.status.type=status

稍作解释一下以上的 workers.properties 配置。

首先我们配置了两个类型为 ajp13 的 worker 分别是 s1 和 s2,注意它们指向同一台服务器上运行在两个不同端口 8109 和 8209 的 Tomcat 上(Tomcat 默认的端口为8009)。

接下来我们配置了一个类型为 lb(也就是负载均衡的意思)的 worker,它的名字是 tomcatserver,这是一个逻辑的 worker,它用来管理前面配置的两个物理连接 s1 和 s2。

最后还配置了一个类型为 status 的 worker,这是用来监控 JK 本身的模块。

有了这三个 worker 还不够,我们还需要告诉 JK,哪些 worker 是可用的,所以就有 worker.list = tomcatserver, status 这行配置。

再来配置一下 uriworkermap.properties

/*=tomcatserver #所有的请求都由 tomcatserver 这个 worker 进行处理

/jkstatus=status #/jkstatus 请求由 status 这个 worker 处理

# 以下都不需要用 tomcatserver 来处理,直接交给 apache 处理。

!/*.gif=tomcatserver

!/*.jpg=tomcatserver

!/*.png=tomcatserver

!/*.css=tomcatserver

!/*.js=tomcatserver

!/*.htm=tomcatserver

!/*.html=tomcatserver

所有的请求都由 tomcatserver 这个 worker 进行处理,但是有几个例外,/jkstatus 请求由 status 这个 worker 处理。另外这个配置中每一行数据前面的感叹号是什么意思呢?感叹号表示接下来的 URI 不要由 JK 进行处理,也就是 Apache 直接处理所有的图片、css 文件、js 文件以及静态 html 文本文件。

附上 mod_jk.conf 与 workers.properties 配置文件:

mod_jk.conf 配置

LoadModule jk_module modules/mod_jk.so

JkWorkersFile workers.properties

JkLogLevel info

#JkLogFile /var/log/httpd/mod_jk.log

JkMount /*.jsp tomcatServer

JkMount /*.do tomcatServer

JkMount /*.cfg tomcatServer

JkMount /*.action tomcatServer

JkMount /*.code tomcatServer

JkMount /*.fileupload tomcatServer

JkMount /*.php tomcatServer

workers.properties 配置

#指定文件路径分割符

ps=\

#模块版本,即Server列

worker.list=tomcatServer

#==========tomcatServer============#

worker.tomcatServer.port=8009 #工作端口,若没占用则不用修改

worker.tomcatServer.host=127.0.0.1 #本机,若上面的Apache主机不为localhost,作相应修改

worker.tomcatServer.type=ajp13 #类型ve

worker.tomcatServer.lbfactor=1 #server的加权比重,值越高,分得的请求越多

worker.tomcatServer.socket_keepalive=true

 类似资料: