Apache+Tomcat+mod_jk配置教程
0.说明
首先我们要弄明白mod_jk的作用是反向代理,而其实使用httpd.conf中的<VirtualHost>标签就可以实现反向代理,为什么还要多搞个mod_jk那么麻烦做反向代理。
原因是<VirtualHost>标签是http协议反向代理到8080端口,mod_jk是ajp协议反向代理到8009端口;http协议tcp只保持短时间连接要经常进行tcp三次握手四次挥手,ajp协议tcp保持长时间连接反向代理开销就比较小。
1.下载
apache--yum install httpd -y
tomcat下载链接--http://tomcat.apache.org/
mod_jk下载链接--http://tomcat.apache.org/download-connectors.cgi
本文以httpd-2.2.15+tomcat-8.5.14+mod_jk-1.2.42为例
httpd通过yum安装配置全为默认(由于最后一步验证中我使用php进行验证所以多装了php,最简lamp配置可参考链接;不需要apache解析php的话可以不用管php的,apache功能没什么必要验证)
tomcat直接下载接压也未修改配置,安装目录/usr/myapp/apache-tomcat-8.5.14/,这两者就不多辍述了。
2.mod_jk安装配置
首先要清楚“Apache+Tomcat+mod_jk配置”到底要做什么,一是编译生成mod_jk模块,二是在apache中加载mod_jk并对其进行配置,三是在tomcat中修改配置以使其能接受mod_jk的转发。
2.1编译生成mod_jk模块
编译生成mod_jk.so,然后将其复制到httpd加载模块默认的目录/etc/httpd/modules
yum install httpd-devel -y #编译生成apache扩展依赖apxs,如未安装先安装
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz
tar -zxf tomcat-connectors-1.2.-src.tar.gz
cd tomcat-connectors-1.2.-src/native/
./configure --with-apxs=/usr/sbin/apxs
make
cp ./apache-2.0/mod_jk.so /etc/httpd/modules/
2.2在apache中加载mod_jk并对其进行配置
cd /etc/httpd/conf.d/
cat > mod_jk.conf << EOF
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Add the module (activate this lne for Apache 1.3)
# AddModule mod_jk.c
# Where to find workers.properties
JkWorkersFile conf.d/workers.properties
# Where to put jk shared memory
JkShmFile log/httpd/mod_jk.shm
# Where to put jk logs
JkLogFile log/httpd/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Send requests for context /examples to worker named worker1
JkMount /examples/* tomcat1
EOF
LoadModule行--加载mod_jk模块
JkWorkersFile行--worker连接配置文件所在路径,文件需要自己创建。路径继承了ServerRoot,所以完整路径为/etc/httpd/conf.d/workers.properties;当然也可以使用决对路径指定为其他任意位置。后边几个配置同此。
JkShmFile行--mod_jk共享内存文件在放位置,文件不需要自己创建
JkLogFile行--mod_jk日志存放位置,文件不需要自己创建
JkLogLevel行--mod_jk日志记录级别
JkMount行--将/examples/开头的请示都转由tomcat1处理
JkWorkersFile行我们指定了worker的连接配置文件路径,所谓worker就是在这里就是tomcat。所以我们要创建/etc/httpd/conf.d/workers.properties文件,并写入tomcat的连接信息
cd /etc/httpd/conf.d
cat > workers.properties << EOF
# Define real worker using ajp13
worker.list=tomcat1
# Set properties for worker1 (ajp13)
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=
EOF
worker.list行--worker列表。如有多个使用逗号(半角)隔开。
worker.tomcat1.type行--连接tomcat1使用的协议及版本。如果配置其他worker,将tomcat1改成相应worker名即可。
worker.tomcat1.host行--tomcat1的域名(包括/etc/hosts)或ip地址。如果配置其他worker,将tomcat1改成相应worker名即可。
worker.tomcat1.port行--tomcat1的ajp端口,默认8009。(tomcat监听8009端口的意义就在这 里)。
说明:已验证如上所述来配置多个worker是可以了,为了简洁起见这里就不演示了。
2.3 tomcat配置jvmRoute
在workers.properties中我们指定了woker名为tomcat1,但在tomcat一侧并不知道tomcat1就是指它。就比如别人给你起代号9527没通知你,然后到你家跟你说找9527,你并不知道就是找你一样。
我们需要找到$CATALINA_HOME/conf/server.xml中的Engine标签,配置其jvmRoute属性值为worker名(这里就是tomcat1)

2.4重启apache和tomcat使配置生效
service httpd restart
cd /usr/myapp/apache-tomcat-8.5./bin #根据自己tomcat目录修改路径
./shutdown.sh
./startup.sh
3 功能实现验证
验证apache功能正常--创建经典的phpinfo.php并访问,如果正常显示则说明apache原先的功能都正常。
验证tomcat转发成功--上边mod_jk.conf中我们配置了/examples/开头的请示都转由tomcat1处理,如果我们访问http://127.0.0.1/examples/其结果是tomcat显示其webapps/examples目录的内容则说明转发成功。
3.1验证apache功能正常
cd /var/www/html #进入apache默认主目录
cat > phpinfo.php << EOF
<?php
phpinfo()
?>
EOF

3.2验证tomcat转发成功

参考:
http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html
http://tomcat.apache.org/connectors-doc/common_howto/loadbalancers.html
Apache+Tomcat+mod_jk配置教程的更多相关文章
- Apache + Tomcat + mod_jk实现集群服务及session共享
实现效果:用apache 分发请求到tomcat中的对应的项目 原理:
- Apache + Tomcat + mod_jk实现集群服务
Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制. 实现效果:用apache 分发请求到tomcat中的对应的项目 环境说明: 操作系统:window xp Jav ...
- windows+php5.5+apache2.4+tomcat+mod_jk配置
原因: 通常情况下apache执行的是80port,比方apache启动后执行localhost:80就能够出现It works页面,这里的80也能够不写,会默认的.而tomcat启动时默认的port ...
- Apache + Tomcat +mod_jk 实现集群
实现效果:用apache 分发请求到tomcat中的对应的项目 环境说明: 操作系统:window7 Javasdk: 1.7 Apache: 2.2.14 (本地安装路径:D:\Apache2 ...
- Apache+Tomcat+mod_jk实现负载均衡
最近公司提出了负载均衡的新需求,以减轻网站的高峰期的服务器负担.趁空闲时间我就准备了一下这方面的知识,都说有备无患嘛.网上相关资料很多,但是太散.我希望可以通过这篇随笔,系统的总结. 一.Tomcat ...
- 2.Apache + Tomcat + mod_jk实现集群服务
转自:http://www.cnblogs.com/dennisit/p/3370220.html Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制. 实现效果:用 ...
- 腾讯云服务器centos 6.5(jdk+tomcat+vsftp)、腾讯mysql数据库 及 tomcat自启动 配置教程
1.腾讯云数据库配置 1.考虑到安全性问题,,平常不使用root用户登录,新增一个用户名neil,用来管理项目的数据库 a.首先登录root创建db_AA数据库 b.在root用户下,创建neil用户 ...
- TomCat安装配置教程
一.JDK的安装与配置 1.从官网下载jdk,注意是jdk不是jre.最好从官网下载,也可以直接度娘. 2.下载完毕后,安装jdk,直接按照安装向导的提示安装即可,安装时可以自己选择安装路径,我的安 ...
- Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载
转载地址:http://blog.163.com/chenhui_java/blog/static/17267249420128101191860/ 注: 由于长期受转载毒害,所以本人日志均是原创:其 ...
随机推荐
- Java处理微信公众号文章图片不显示微信
http://blog.csdn.net/just4you/article/details/52933620
- NoSQL(not only struts query language)的简单介绍
为什么需要NoSQL? 互联网自扩大规模来一直面临3个问题 1.High performance高并发 一个网站开发实时生成动态页面可能会存在高并发请求的需求,硬盘IO已经无法接受 2.Huge St ...
- Codeforces 985 E - Pencils and Boxes
E - Pencils and Boxes 思路: dp 先排个序,放进一个袋子里的显然是一段区间 定义状态:pos[i]表示小于等于i的可以作为(放进一个袋子里的)一段区间起点的离i最近的位置 显然 ...
- Unity --- 纹理为什么要设置为2的N次方
1.图片的纹理像素在Unity3D中需要遵循2的N次方,由图形学决定的,只识别2的N次方. 非2的N次方的图片会转化为2的N次方图片(500 x 500 → 512 x 512),是因为转化过程比 ...
- Asp.net core 学习笔记 ( Configuration 配置 )
参考 : https://cnblogs.com/nianming/p/7083964.html 配置写在 appsettings.json 里头 比如 { "object": { ...
- Python pickle使用
2019-01-15 10:04:32 用于序列化的两个模块 json:用于字符串和Python数据类型间进行转换 pickle: 用于python特有的类型和python的数据类型间进行转换 jso ...
- Superclass和Constructor Chaining
A subclass inherits accessible date fields and methods from its superclass. Does it inherit construc ...
- 最简单的TTcpServer与TTcpClient通信实例-Delphi
unit TcpSCDemo;//最简单的TTcpServer与TTcpClient通信实例-Delphi //Borland推出TTcpServer与TTcpClient作为主要的网络通信控件,意味 ...
- 2. 搭建DRF项目
企业项目开发流程 一.需求分析 1.企业的web项目类型: 商城 门户网站[企业站和门户站] 社交网络 资讯论坛 内部系统 个人博客 内容收费站 前端的静态页面制作,外界开发的时候,是照着psd/pn ...
- Numpy常用API
目录 一.输入和输出 1.1 NumPy二进制文件(NPY,NPZ) 1.2 文本文件 1.3 正则表达式解析 1.4 原始二进制文件 1.5 内存映射文件 1.6 Base-n相关 1.7 数据源 ...