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】【泛型】
泛型的优点使⽤泛型有下⾯⼏个优点:1.类型安全2.向后兼容3.层次清晰4.性能较⾼,⽤GJ(泛型JAVA)编写的代码可以为java编译器和虚拟机带来更多的类型信息,这些信息对java程序做进⼀步优化提 ...
- 无视编码都统一转成unicode 然后截断 例如 。“发发发发发发” 操作之后显示为 “发发发发...”
-- local function checkPlayName( str ) -- str = Utils.utf8_to_unicode(str)-- local retStr = "&q ...
- 运行和控制Nginx——命令行参数和信号
参考资料: Nginx中文文档: http://www.nginx.cn/nginxchscommandline Nginx的启动.停止.平滑重启.信号控制和平滑升级:http://zachary-g ...
- 前端阶段_html部分2后台frame的初始构架案例
1.<frameset cols="25%,75%"> 把页面分为1:3,并且使用frame的同时应该删除body标签 2.<frame src ...
- 力扣(LeetCode)415. 字符串相加
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包 ...
- react点滴
1.<SubSubComp {...this.props } /> 传递属性,{...props}的方式为组件传递了这两个属性,这就是JSX中的延展属性,"..."成为 ...
- 关于nodejs访问mysql的思考
nodejs要访问mysql数据库,首先必须要安装包mysql,命令:npm install mysql.安装成功后的访问数据库代码如下: var mysql = require('mysql'); ...
- (转)C# 构造函数与析构函数
(1)构造函数<1>除非是static,否则编译器将会给每一个没有构造函数的类指定一个默认的构造函数<2>构造函数private时候,类不能被实例化<3>派生类可以 ...
- English trip EM2-PE-1B Teacher:Patirck
PE = 演讲课 课上内容(Lesson) How are you today? 你今天怎么样? What is your name? 你的名字叫什么? What do you come from ...
- C# 网页图片采集
http://blog.csdn.net/a237428367/article/details/5987832 using System; using System.Collections.Gener ...