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/ 注: 由于长期受转载毒害,所以本人日志均是原创:其 ...
随机推荐
- gulp的使用介绍及技巧
gulp的使用介绍及技巧 转载: https://www.cnblogs.com/2050/p/4198792.html 1.gulp的安装 首先确保你已经正确安装了nodejs环境.然后以全局方式安 ...
- 理解 Redis(5) - 哈希值
哈希值存储示意图:首先, 我想先认真理解一下哈希值的数据结构:前面讲过, redis 存储的是键值对, 键永远都是可以打印的 ASCII 码, 值是字符串, 或者是以其他形式包裹的字符串. 上两节介绍 ...
- Unity Shaderlab: Object Outlines 转
转 https://willweissman.wordpress.com/tutorials/shaders/unity-shaderlab-object-outlines/ Unity Shader ...
- RESTful 个人理解总结
一.什么是RESTful 面向资源 简单的说:RESTful是一种架构的规范与约束.原则,符合这种规范的架构就是RESTful架构. 先看REST是什么意思,英文Representational ...
- Systemd初始化进程/RHEL 6系统中System V init命令与RHEL 7系统中systemctl命令的对比
Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程.初始化进程作为Linux系统的第一个进程,它需要完成Li ...
- zlib交叉编译
下载 zlib-1.2.9.tar.gz wget http://www.zlib.net/fossils/zlib-1.2.9.tar.gz 解压文件 tar -zxvf zlib-1.2.9.ta ...
- JAVA基础知识总结:十一
一.内部类 一个类中包含着另外一个类,里面的类被称为内部类,外面的称为外部类 1.成员内部类 和成员变量或者成员方法平级的内部类 语法: 访问权限修饰符 class 外部类类名{ //成员变量 //成 ...
- Asp.net core 学习笔记 ( User Secrets )
参考 : http://cnblogs.com/nianming/p/7068253.html https://docs.microsoft.com/en-us/aspnet/core/securit ...
- Nginx的安装和使用(Linux)
关于什么是Nginx,Nginx的优势和使用范围这里就不多说了.其实它就是一个web服务器.这篇文章主要是说Nginx的安装和使用. 安装方式有yum安装和源码安装,这里主要讲源码安装 1.安装依赖, ...
- 验证码之SimpleCaptcha (一)
在captcha中,两个比较著名的框架验证码有Jcaptcha和simpleCaptcha,Jcaptcha太庞大了,所以我选择了简单的SimpleCaptcha simpleCaptch ...