以mod_jk方式整合apache与tomcat(动静分离)

前言:

为什么要整合apache和tomcat

apache对静态页面的处理能力强,而tomcat对静态页面的处理不如apache,整合后有以下好处

  • 提升对静态文件的处理性能
  • 利用 Web 服务器来做负载均衡以及容错
  • 更完善地去升级应用程序

jk整合方式介绍(较为普遍的方式)

  • jk是通过 AJP 协议与 Tomcat 服务器进行通讯
  • Tomcat 默认的 AJP Connector 的端口是 8009(在tomcat的server.xml文件中默认被注释掉)
  • JK 本身提供了一个监控以及管理的页面 jkstatus,通过 jkstatus 可以监控 JK 目前的工作状态以及对到tomcat 的连接进行设置

目录

一.准备apache、tomcat、jk环境

1.apache和tomcat配置专栏其它文章有介绍,不过多阐述

2.编译安装jk环境

二.配置jk模块以实现整合

1.以我的安装路径为例首先将/usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0/mod_jk.so这个文件拷贝到/etc/httpd/modules

2.配置mod_jk.conf文件,我同意放在/etc/httpd/conf下的

3.配置workers.properties,上面定义的在那个位置就创建在哪个位置

4.更改/etc/httpd/conf/httpd.conf 

三.更改tomcat的server.xml配置

1.按照自己的tomcat安装位置查找该文件

2.在文件中找到AJP的这个位置,将Connector原有注释取消掉并进行配置

 注意:

如果在使用jk整合apache和tomcat后续测试时出现“503 Service Unavailable”,需要将address处修改为虚拟机IP地址或“0.0.0.0”,新增secretRequired="false"这行,并重启测试

四.创建测试界面(谨慎使用中文)

1.apache测试文件,这里以默认的html目录为例

2.tomcat测试文件,放在你tomcat安装目录中的webapps/ROOT目录下

五.测试


一.准备apache、tomcat、jk环境

1.apache和tomcat配置专栏其它文章有介绍,不过多阐述

[root@localhost native]# yum install -y httpd httpd-devel.x86_64 gcc gcc-c++ make

2.编译安装jk环境

可以到镜像网站下载包

[root@localhost jk]# tar -zvxf tomcat-connectors-1.2.48-src.tar.gz -C /usr/local/src/
[root@localhost native]# pwd
/usr/local/src/tomcat-connectors-1.2.48-src/native
[root@localhost native]# whereis apxs  #查看apxs位置
apxs: /usr/bin/apxs /usr/share/man/man1/apxs.1.gz
[root@localhost native]# ./configure --with-apxs=/usr/bin/apxs
#使用上面查到的apxs进行编译安装
[root@localhost native]# make
[root@localhost native]# make install

二.配置jk模块以实现整合

1.以我的安装路径为例首先将/usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0/mod_jk.so这个文件拷贝到/etc/httpd/modules

[root@localhost apache-2.0]# pwd
/usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0
[root@localhost apache-2.0]# cp mod_jk.so /etc/httpd/modules/

2.配置mod_jk.conf文件,我同意放在/etc/httpd/conf下的

一定注意文件的路径,不确定就写绝对路径

[root@localhost conf]# pwd
/etc/httpd/conf
[root@localhost conf]# vim mod_jk.conf
LoadModule jk_module modules/mod_jk.so   #导入刚才移过来的mod_jk.so模板
JkWorkersFile /etc/httpd/conf/workers.properties   #稍后需要创建的tomcat的工作文件
JkLogFile /var/log/httpd/mod_jk.log   #自定义,重启后会自动创建
JkLogLevel info                       #日志等级
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories
JkRequestLogFormat "%w %V %T"        #一些日志格式
JkMount /*.jsp worker1    #重要参数,将以".jsp"结尾的文件交给worker1处理,worker1也是稍后workers.properties工作文件中的主要参与者#这里可以定义多个任务分配,按实际需求定义
workers.properties
JkMount /* worker1
JkMount /*.jsp worker1
JkMount /servlet/* worker1
JkMount /*.do worker1
JkMount /*.action worker1
JkMount /*.class worker1
JkMount /*.jar worker1
JkMount /jkstatus status # 状态页,通过 jkstatus 可以监控 JK 目前的工作状态以及对到tomcat的连接进行设置

3.配置workers.properties(可用worker属性文件),上面定义的在那个位置就创建在哪个位置

[root@localhost conf]# vim workers.properties
workers.tomcat_home=/usr/local/tomcat/   #定义tomcat工作目录
workers.java_home=/usr/java//usr/java/jdk1.8.0_371   #定义jdk工作目录
worker.list=worker1     #处理请求的“工作者”
worker.worker1.type=ajp13    #固定模板
worker.worker1.host=192.168.2.190   #该“工作者”主机地址
worker.worker1.port=8009    #该“工作者”服务端口#如果在mod_jk.so中定义了状态页,需要
#worker.list = status
#worker.status.type=status

4.更改/etc/httpd/conf/httpd.conf 

添加上这行 

三.更改tomcat的server.xml配置

1.按照自己的tomcat安装位置查找该文件

[root@localhost conf]# pwd
/usr/local/tomcat/apache-tomcat-8.5.70/conf
[root@localhost conf]# vim server.xml 

2.在文件中找到AJP的这个位置,将Connector原有注释取消掉并进行配置

 注意:

如果在使用jk整合apache和tomcat后续测试时出现“503 Service Unavailable”,需要将address处修改为虚拟机IP地址或“0.0.0.0”,新增secretRequired="false"这行,并重启测试

四.创建测试界面(谨慎使用中文)

1.apache测试文件,这里以默认的html目录为例

[root@localhost html]# pwd
/var/www/html
[root@localhost html]# vim index.html 
apache

2.tomcat测试文件,放在你tomcat安装目录中的webapps/ROOT目录下

[root@localhost ROOT]# pwd
/usr/local/tomcat/apache-tomcat-8.5.70/webapps/ROOT
[root@localhost ROOT]# vim test.jsp 
tomcat

五.测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/86098.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【构建卷积神经网络】

构建卷积神经网络 卷积网络中的输入和层与传统神经网络有些区别,需重新设计,训练模块基本一致 全连接层:batch784,各个像素点之间都是没有联系的。 卷积层:batch12828,各个像素点之间是有联系的。 impor…

将vsCode 打开的多个文件分行(栏)排列,实现全部显示,便于切换文件

目录 1. 前言 2. 设置VsCode 多文件分行(栏)排列显示 1. 前言 主流编程IDE几乎都有排列切换选择所要查看的文件功能,如下为Visual Studio 2022的该功能界面: 图 1 图 2 当在Visual Studio 2022打开很多文件时,可以按照图1、图2所示找到自…

Golang struct 结构体指针类型 / 结构体值类型

struct类型的内存分配机制 结构体变量之间的赋值是值拷贝。 type stu struct {Name stringSlice []stringMap1 map[string]string }func main() {s : stu{}s.Slice make([]string, 6)s.Slice[1] "ssss"s.Slice[2] "xxxx"s.Map1 make(map[string]stri…

基础堆排序

目录 基础堆排序 一、概念及其介绍 二、适用说明 三、过程图示 基础堆排序

【Opencv入门到项目实战】(十):项目实战|文档扫描|OCR识别

所有订阅专栏的同学可以私信博主获取源码文件 文章目录 1.引言1.1 什么是光学字符识别 (OCR)1.2 应用领域 2.项目背景介绍3.边缘检测3.1 原始图像读取3.2 预处理3.3 结果展示 3.轮廓检测4.透视变换5.OCR识别5.1 tesseract安装5.2 字符识别 1.引言 今天我们来看一个OCR相关的文…

桂林小程序https证书

现在很多APP都相继推出了小程序,比如微信小程序、百度小程序等,这些小程序的功能也越来越复杂,不可避免的和网站一样会传输数据,因此小程序想要上线就要保证信息传输的安全性,也就是说各种类型的小程序也需要部署https…

怎么用PS的魔术棒抠图?PS魔术棒抠图的操作方法

使用PS的魔术棒抠图教程: 1、首先,在ps界面上方点击“文件”选项,再在其弹出的选项栏中选择“打开”选项。然后,打开你所需要的图片。 2、然后,单击左侧的“魔术棒”工具。 3、然后,用鼠标点击图片的背景&…

【C++11】类的新功能 | 可变参数模板

文章目录 一.类的新功能1.默认成员函数2.类成员变量初始化3.强制生成默认函数的关键字default4.禁止生成默认函数的关键字delete5.继承和多态中final与override关键字 二.可变参数模板1.可变参数模板的概念2.可变参数模板的定义方式3.参数包的展开方式①递归展开参数包②逗号表…

Vue过滤器(时间戳转时间)

目录 过滤器 HTML写法: 定义过滤器: 定义全局过滤器: 过滤器串联: 带参数过滤器: 时间戳转时间 过滤器 官方地址:过滤器 — Vue.js (vuejs.org) 过滤器是指Vue.js支持在{{}}插值的尾部添加一个管道符“&#xff0…

vue3 + vite + ts 封装 SvgIcon组件

环境 vite vue3 ts "vue": "^3.3.4", "vite": "^4.4.0", "typescript": "^5.0.2",# 需要下载的依赖 "vite-plugin-svg-icons": "^2.0.1",不同版本可能存在一定差异, 这篇文章不可能对应所…

通达OA SQL注入漏洞【CVE-2023-4166】

通达OA SQL注入漏洞【CVE-2023-4166】 一、产品简介二、漏洞概述三、影响范围四、复现环境POC小龙POC检测工具: 五、修复建议 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损…

宋浩线性代数笔记(五)矩阵的对角化

本章的知识点难度和重要程度都是线代中当之无愧的T0级,对于各种杂碎的知识点,多做题复盘才能良好的掌握,良好掌握的关键点在于:所谓的性质A与性质B,是谁推导得谁~

ApiPost的使用

1. 设计接口 请求参数的介绍 Query:相当于get请求,写的参数在地址栏中可以看到 Body: 相当于 post请求,请求参数不在地址栏中显示。 请求表单类型,用form-data json文件类型,用row 2. 预期响应期望 设置完每一项点一下生成响应…

设计实现数据库表扩展的7种方式

设计实现数据库表扩展的7种方式 在软件开发过程中,数据库是一项关键技术,用于存储、管理和检索数据。数据库表设计是构建健壮数据库系统的核心环节之一。然而,随着业务需求的不断演变和扩展,数据库表中的字段扩展变得至关重要。 …

neo4j的CQL命令实例演示

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

92. 反转链表 II

92. 反转链表 II 题目-中等难度示例1. 获取头 反转中间 获取尾 -> 拼接2. 链表转换列表 -> 计算 -> 转换回链表 题目-中等难度 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点…

elk开启组件监控

elk开启组件监控 效果&#xff1a; logstash配置 /etc/logstash/logstash.yml rootnode1:~# grep -Ev "^#|^$" /etc/logstash/logstash.yml path.data: /var/lib/logstash path.logs: /var/log/logstash xpack.monitoring.enabled: true xpack.monitoring.elasti…

深兰科技熊猫汽车牵手首恒出行,人工智能技术提升商用车运营服务

8月8日&#xff0c;深兰科技集团旗下熊猫新能源汽车(上海)有限公司(下称熊猫新能源汽车)与河南首恒出行服务有限公司(下称首恒出行)在深兰科技总部举行签约仪式&#xff0c;首恒出行将向熊猫新能源汽车年定向采购10000台商用车&#xff0c;双方将在汽车后市场领域进行技术合作。…

【ElasticSearch入门】

目录 1.ElasticSearch的简介 2.用数据库实现搜素的功能 3.ES的核心概念 3.1 NRT(Near Realtime)近实时 3.2 cluster集群&#xff0c;ES是一个分布式的系统 3.3 Node节点&#xff0c;就是集群中的一台服务器 3.4 index 索引&#xff08;索引库&#xff09; 3.5 type类型 3.6 doc…

Linux学习————redis服务

目录 一、redis主从服务 一、redis主从服务概念 二、redis主从服务作用 三、缺点 四、主从复制流程 五、搭建主从服务 配置基础环境 下载epel源&#xff0c;下载redis​编辑 二、哨兵模式 一、概念 二、作用 三、缺点 四、结构 五、搭建 修改哨兵配置文件 启动服务…