tomcat中ajp及8009端口用处

article/2025/8/30 4:01:51

 

tomcat常用于提供servlet/jsp容器服务,简单方便、使用高效。但是tomcat处理静态文件资源的性能不足(应该是serviece部分),同时,如果用户直接与tomcat进行http的连接获取静态资源(连接器connector部分),相对而言就更慢了(http协议基于文本,相对“基于二进制的协议”而言性能较低,后者例如ajp13协议)。

因此,如果以“使用tomcat提供servlet/jsp容器服务”为前提,又希望使其中的静态文件资源的请求性能好一点时,就要用到“tomcat中的ajp”(此处ajp指对接ajp13协议的连接器)。下面通过流程说明ajp意义及优势,而8009只是默认的ajp服务端口,没什么特别的。网上各方常用图如下:

上图的使用逻辑不赘述。客户1的请求就是普通servlet资源的请求,重点说明为什么这么处理客户2的请求,即优势。客户2请求静态资源:首先,此时tomcat提供的是“基于AJP13协议”的ajp服务(常用8009端口),该协议基于二进制的TCP传输协议,基于包的,因此截图中间的HTTP服务器与tomcat之间保有一个持久存在的连接,省了“每次新请求时重新创建socket”的麻烦,且两者通信基于AJP13因此速度快效率高;其次,tomcat对静态资源缺少优化,而HTTP服务器可以对获得的资源进行优化,比如缓存之类对。综上,客户2获取一个新的静态资源时,相比直接连接tomcat,从“http + tomcat处理”变成了“http + 中间http服务器处理 + AJP + tomcat处理”,看似流程多了点,但前后两个“http”传输的“连接器部分”并不相同,性能速度不确定;但后续该客户2或其他客户再次获取该静态文件资源时,有可能由中间http服务器直接处理了,注意Apache服务器处理静态文件资源时明显优于tomcat处理静态文件资源的。因此,整体而言,静态文件资源的处理性能提升了。

 

但是,上述方案只是一种过往的经验总结,用于解释ajp功能。实际中,能“代理ajp”的上述中间http服务器不多也不常用(比如截图Apache服务器与IIs服务器),而已经有其他方案处理优化该场景需求,且tomcat的ajp也暴露了很多漏洞,所以说只是经验、不建议使用。

因此,最终结论是别用ajp,tomcat中的ajp服务在server.xml中注释/禁掉把。

 

(学习网上帖子时看到热加载与热部署区别:前者监听所有文件改变,变时局部加载不清空session与内存,有可能内存溢出,有可能ide出bug;后者重新部署,清空session释放内存——前者多用于研发,后者相对服务器而言)

 


http://chatgpt.dhexx.cn/article/3NcJKnCC.shtml

相关文章

CVE-2020-1938 :Apache Tomcat AJP 漏洞复现和分析

一、漏洞描述 Apache Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器.默认情况下,Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互.但Apache Tomcat在AJP协议的实现上存在漏洞,导致攻击者可以通过发送恶意的AJP请求,可以读取或者包含Web应…

网络抓包方式复现Tomcat- AJP协议文件读取/命令执行漏洞(CVE-2020-1938 / CNVD-2020-10487)

目录 测试是否安装成功​编辑 基础简介 Tomcat Connector(连接器) ​编辑Servlet(服务程序) Tomcat内部处理请求流程 文件读取漏洞 抓包复现 需要将下图中抓取到的数据包修改一下 ​编辑 替换成二进制数据的形式: 运行结果 ​编辑 创建脚本文件&#xf…

AJP协议

由于tomcat的html和图片解析功能相对其他服务器如apche等较弱,所以,一般都是集成起来使用,只有jsp和servlet服务交由tomcat处理,而tomcat和其他服务器的集成,就是通过ajp协议来完成的。AJP协议AJP13是定向包协议。因为…

Apache Tomcat AJP协议文件读取与包含

永远也不要忘记能够笑的坚强,就算受伤,我也从不彷徨。 0x01.漏洞情况分析 Tomcat是Apache软件基金会Jakarta 项目中的一个核心项目,作为目前比较流行的Web应用服务器,深受Java爱好者的喜爱,并得到了部分软件开发商的…

Tomcat AJP 文件包含漏洞(CVE-2020-1938)

目录 1.漏洞简介 2、AJP13 协议介绍 Tomcat 主要有两大功能: 3.Tomcat 远程文件包含漏洞分析 4.漏洞复现 5、漏洞分析 6.RCE 实现的原理 1.漏洞简介 2020 年 2 月 20 日,公开CNVD 的漏洞公…

Tomcat HTTP协议与AJP协议

https://blog.csdn.net/jeikerxiao/article/details/82745516 Tomcat HTTP协议与AJP协议 HTTP Connector AJP Connector 配置 Tomcat在server.xml中配置了两种连接器。 HTTP Connector 拥有这个连接器,Tomcat才能成为一个web服务器,但还额外可处理Serv…

Tomcat架构解析之AJP

一、前言 除了HTTP,Tomcat还支持AJP协议,以便于Apache HTTP Server等Web服务器集成,这篇博客主要讲解AJP协议的基础知识以及其配置使用方式。 二、基础知识 为了满足负载均衡、静态资源优化、遗留系统集成(如集成PHP Web应用&…

HTTP协议与AJP协议

AJP 全称 Apache JServ Protocol, 是定向包协议,因为性能的原因,使用二进制格式来传输可读性文本,WEB服务器通过TCP连接和SERVLET容器连接。 一旦WEB服务器打开了一个到SERVLET容器的连接,连接处于下面的状态&#xff…

解决Destroying ProtocolHandler [“ajp-apr-8009“]

今天刚开始调JSP网站还好好的,后来中间注销了电脑一次, 再打开调试它,就遇到了这个 无法启动服务器的问题: Destroying ProtocolHandler ["ajp-apr-8009"] 上网百度了下,说是端口号被占用了。 解决办法&…

你知道HTTP协议,但你了解AJP协议吗?

什么是AJP协议? AJP 协议用于web服务器和应用服务器之间的通信?为什么不用HTTP呢? Web服务器和应用服务器有什么区别? AJP协议和HTTP 协议有什么区别? 为什么客户端与服务器之间的通信使用HTTP协议而不是用AJP协议&…

WEB安全:Tomcat-Ajp协议漏洞分析

一、漏洞描述 Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。 Apache Tomcat服务器存在文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件或源代码…

ajp 定向包协议 二进制代替文本提高性能 简介

AJP协议是定向包(面向包)协议,采用二进制形式代替文本形式,以提高性能。Web Server一般维持和Web Container的多个TCP Connecions,即TCP连接池,多个request/respons循环重用同一个Connection。但是当Connec…

Java高级自我介绍

先放个大招,哈哈,相信很多朋友准备了很久技术方面的内功,但是在真正与HR交锋的时候,有时还是败下阵来,究其原因之一,竟然是第一招错了,我自己也是,,所以,周末…

java开发自我介绍范文(合集)

java开发自我介绍范文3篇 java开发自我介绍范文篇一: Good morning ! It is really my honor to have this opportunity for a interview, I hope i can make a good performance today. Im confident that I cansucceed. Now i will introduce myself briefly I am…

Java面试中如何介绍自己的项目经验?

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇 作者: hsm_computer 来源: https://www.cnblogs.com/JavaArchitect/p/7586949.html 在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见…

Java程序员面试时,如何进行自我介绍呢?

现在不管什么面试都会面对的一个环节,就是“自我介绍”。这个环节是很多企业作为选拔人才的一个方式与标准。那么,Java程序员面试自我介绍部分讲什么内容?小千给你详细解答下。 Java程序员自我介绍要有一条清晰的线索,便于组织自…

Java面试自我介绍怎么说?Java面试技巧!

自我介绍可谓是面试中最讨厌的环节了,许多程序员自身技术水平相当不错,但不善于表达,在自我介绍环节往往容易给面试官一个不好的印象。但这又是不可避免的,想要别人知道你是谁,你会什么,你做过什么&#xf…

JAVA面试技巧之自我介绍

【如何进行自我介绍】 自我介绍这个问题,不用多说了,面试必定会问!如果想要在自我介绍的时候就能够打动面试官,吸引面试官对我们的兴趣,那么像我们这种接受过Java培训的程序员的自我介绍当然不能和应届生或者其他非技术…

AIOP简介

AIOP:AI for IT Operations

AIOps,让金融智能化运维化繁为简

前言 数字化转型是今天金融企业保持竞争力、拓展业务边界的必经之路。这让企业数据中心运维工作不得不面对海量数据压力的挑战。显然,传统运维方法已经无法满足企业数字化时代的新需求,构建面向未来的智能运维体系成为金融企业转型的关键。 2022年银保…