使用 AJP / Tomcat 6.0 设置最大 HTTP 标头大小

Posted

技术标签:

【中文标题】使用 AJP / Tomcat 6.0 设置最大 HTTP 标头大小【英文标题】:Setting Max HTTP Header Size With AJP / Tomcat 6.0 【发布时间】:2011-10-13 19:54:43 【问题描述】:

如果您不使用 AJP,Tomcat 6.0 连接器在 server.xml 中有一个不错的 maxHttpHeaderSize 属性。但是,如果您使用的是 AJP,则无法理解该属性。如果您正在编写使用 AJP 的应用程序,有什么方法可以增加允许的 HTTP 标头大小?

(maxHttpHeaderSize 记录在 http://tomcat.apache.org/tomcat-6.0-doc/config/http.html 但该文档中也有这样的内容:“如果您希望配置用于使用 AJP 协议连接到 Web 服务器的连接器(例如 mod_jk 1.2.x Apache 1.3 的连接器),请参见此处。”“此处”链接指向 http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html,其中属性列表中省略了 maxHttpHeaderSize。)

【问题讨论】:

【参考方案1】:

AJP 协议是面向数据包的,在 mod_proxy_ajp 的 Basic Packet Structure 部分它说:

根据大部分代码,最大数据包大小为 8 * 1024 字节 (8K)。数据包的实际长度编码在标头中。

Send Headers 的数据包代码为 4,因此看来所有标头都需要放入一个限制为 8k 的数据包中。但是,如果How to set the AJP packet size in Tomcat? 正确,您可以提高该限制。

【讨论】:

以上是关于使用 AJP / Tomcat 6.0 设置最大 HTTP 标头大小的主要内容,如果未能解决你的问题,请参考以下文章

Apache + Tomcat:使用 mod_proxy 代替 AJP

Apache 后面的 Tomcat 使用 ajp 进行 Spring Boot 应用程序

Tomcat mod_proxy AJP 静态资源目录

Apache 2.4 代理 AJP 使用 Tomcat 8 服务多个域

TOMCAT8009端口与AJP到底是什么?TOMCAT8009端口与AJP13协议

Tomcat的AJP连接器漏洞