1. 先准备环境
你得有这些东西:
- JDK(装好并配置好环境变量)
- Apache HTTP Server(就是 httpd,比如 2.4.x)
- gcc、make 这些编译工具(Linux 一般自带,没有就
yum install gcc make或apt-get install)
2. 下载源码包
安装包下载: https://pan.quark.cn/s/2df3886f364c ,去官网或者镜像站下载 tomcat-connectors-1.2.37-src.tar.gz,扔到服务器某个目录,比如 /usr/local/src。
cd /usr/local/src
wget https://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.37-src.tar.gz
3. 解压
tar -zxvf tomcat-connectors-1.2.37-src.tar.gz
cd tomcat-connectors-1.2.37-src/native
注意:我们要编译的是 native 里的东西,这是给 Apache 用的连接模块。
4. 编译
先指定 Apache 的 apxs 路径,一般在 Apache 安装目录的 bin 里,比如 /usr/local/apache2/bin/apxs。
如果不知道 apxs 在哪,可以用 find / -name apxs找一下。
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
编译完会在 apache-2.0目录里生成 mod_jk.so。
5. 复制模块到 Apache
cp apache-2.0/mod_jk.so /usr/local/apache2/modules/
路径根据你 Apache 实际位置改。
6. 配置 Apache
编辑 Apache 配置文件 httpd.conf(一般在 conf 目录),加上:
LoadModule jk_module modules/mod_jk.so
# 指定 workers 配置文件
JkWorkersFile conf/workers.properties
# 指定 URL 映射规则文件(可选)
JkMountFile conf/uriworkermap.properties
# 日志相关(可选,但建议配)
JkLogFile logs/mod_jk.log
JkLogLevel info
7. 创建 workers.properties
在 Apache 的 conf 目录下新建 workers.properties,内容示例:
worker.list=ajp13
worker.ajp13.type=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009
这里 host和 port对应 Tomcat 的 AJP 端口(默认 8009)。
8. 配置 Tomcat
确认 Tomcat 的 server.xml里 AJP 连接器是开启的:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
9. 重启服务
先重启 Tomcat:
$TOMCAT_HOME/bin/shutdown.sh
$TOMCAT_HOME/bin/startup.sh
再重启 Apache:
/usr/local/apache2/bin/apachectl restart
10. 测试
访问 Apache 的某个 URL,看能不能转到 Tomcat 的应用。比如 Apache 跑在 80 端口,Tomcat 的应用在 8080,通过 mod_jk 转发后,访问 http://服务器IP/应用名应该能正常打开。