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/ 注: 由于长期受转载毒害,所以本人日志均是原创:其 ...
随机推荐
- Shell中的IFS
一.IFS 介绍 Shell 脚本中有个变量叫 IFS(Internal Field Seprator) ,内部域分隔符.完整定义是The shell uses the value stored in ...
- IOS学习笔记一1
//创建.h文件 界面的类文件(创建一个类) @interface MyClass:NSObject{ //类变量声明 int a; int b; } //类属性声明 (int) p2 //类方法声明 ...
- 蚂蚁金服×西安银行 | 西安银行手机银行App的智能升级之路
小蚂蚁说: 当前,数字化信号已经逐渐深入到社会的每个角落,影响着用户的心智和行为,来到数字化时代门口的银行,需要注意到数字化信号.西安银行通过引入蚂蚁金服移动开发平台mPaaS,对手机银行进行架构升级 ...
- SpringBoot中加密com.github.ulisesbocchio
Jasypt Spring Boot 为 Spring Boot 项目中的属性源(property sources)提供加密支持. 有三种方法可以在项目中集成 jasypt-spring-boot: ...
- iterrows(), iteritems(), itertuples()对dataframe进行遍历
iterrows(): 将DataFrame迭代为(insex, Series)对. itertuples(): 将DataFrame迭代为元祖. iteritems(): 将DataFrame迭 ...
- stm32复位引脚NRST
STM32F的NRST是异步复位脚. 当NRST输入低电平的时候,MCU处于复位状态,重设所有的内部寄存器,及片内几十KB的SRAM. 当NRST从低电平变高时,PC指针从0开始. 但是复位的时候不会 ...
- GrindEQ Math Utilities 2015破解版 图文安装和序列号补丁激活教程
GrindEQ Math Utilities 2015破解版 图文安装和序列号补丁激活教程 https://www.sdbeta.com/mf/2018/1002/226048.html 软件下载: ...
- Getting Started with Processing 第十章——对象
不像原始数据类型boolean,int 和 float 只能存一个值,一个对象可以存很多值.但这也是我们讲的一部分,对象也是用相关函数将变量编组的一种方式. 域和方法 在对象的上下文中,一个变量被叫做 ...
- pseudotime专题
review:Computational Methods for Trajectory Inference from Single-Cell Transcriptomics Tools/Algorit ...
- xml ----> 几个常用dtd头文件模板
环境: idea ce 2018.1 "File --> settings... --> Editor --> file and code templates" ...