使用 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 应用程序
Apache 2.4 代理 AJP 使用 Tomcat 8 服务多个域