变更日志

前言

这是 Apache Tomcat 连接器的变更日志。此变更日志不包含 Tomcat 连接器的所有更新和修复(尚未)。它应该只包含 2004 年 11 月 10 日(JK 的新文档项目启动)之后进行的修复。

1.2.48 和 1.2.49 之间的更改

Apache

  • 更新: 从 mod_unique_id 中检索默认请求 ID。它也可以通过配置 "JkRequestIdIndicator" 从任意环境变量中获取。(rjung)
  • 修复: 65901: 当请求使用 HEAD 方法时,如果状态代码表示错误,则不要将响应主体生成委托给 httpd。(markt)
  • 修复: 66005: 仅导出主模块符号。模块内部符号的可见性会导致在与库符号冲突时崩溃。基于 Josef Čejka 提供的补丁。(rjung)
  • 修复: 删除对请求到工作者的隐式映射的支持。现在所有映射都必须是显式的。(rjung)

IIS

  • 更新: 将默认请求 ID 设置为 GUID。它也可以通过配置 "request_id_header" 从任意请求头中获取。(rjung)
  • 修复: 修复 Translate 头部的非空检查。(rjung)

通用

  • 修复: 修复在初始化和复制固定长度字符串时出现的编译器警告。(rjung)
  • 更新: 在 mod_jk 日志行中添加请求 ID。 (rjung)
  • 修复: 64878: 在 MacOS 上构建时,启用配置以找到 pid_t 和 pthread_t 的正确大小。 (markt)
  • 修复: 修复 Clang 15/16 兼容性。 由 Sam James 提供的拉取请求 #6。 (markt)
  • 更新: 提高状态工作程序中的 XSS 防护。 (rjung)
  • 更新: 在读取 AJP 消息时添加额外的边界和错误检查。 (schultz/markt)

文档

  • 更新: 移除对 Netscape / Sun ONE / Oracle iPlanet Web Server 的支持,因为该产品已停止使用。 (markt)
  • 更新: 移除指向旧 JK2 文档的链接。 JK2 文档仍然可用,只是不再从当前 JK 文档中链接。 (markt)
  • 更新: 从版本 1.2.45 开始重新组织变更日志中的子部分。 (rjung)

1.2.47 和 1.2.48 之间的更改

IIS

  • 更新: 更新安装说明以移除不再支持的 Windows 版本并添加 Windows Server 2019。 (markt)

1.2.46 和 1.2.47 之间的更改

Apache

  • 添加: 扩展方法进入/退出跟踪级别日志记录,以帮助调试请求映射问题。 (markt)
  • 修复: 修复规范化检查中的一个错误,该错误阻止了基于文件的请求(例如 SSI 文件包含)被处理。 (markt)
  • 修复: 63214: 使用 JkAutoAlias 时,确保包含空格的文件名可访问。 (markt)

通用

  • 更新: 更新文档以反映 Apache Tomcat 连接器的源代码已从 Subversion 迁移到 Git。 (markt)
  • 修复: 64051: 使用 set_session_cookie 时,确保如果负载均衡器必须故障转移到不同的工作程序,则会发出更新的会话 cookie。 (markt)
  • 更新: https://git.savannah.gnu.org/git/config.git 更新 config.guess 和 config.sub。 (markt)
  • 更新: 更新发布脚本以迁移到 git。 (rjung)

1.2.45 和 1.2.46 之间的更改

Apache

  • 修复: 62751: 修复 1.2.44 中的回归问题,该问题导致在提供 poll() 的平台上,socket_connect_timeout 以秒为单位而不是毫秒为单位进行解释。 (rjung)

1.2.44 和 1.2.45 之间的更改

Apache

  • 更新: 更新文档以说明 JkAutoAlias 指令的额外限制。 (markt)
  • 修复: 改善路径参数处理,以便 JkStripSession 可以从 URI 的任何段中删除在路径参数中指定的会话 ID,而不仅仅是最后一个段。 (markt)

IIS

  • 修复: 改善路径参数处理,以便 strip_session 可以从 URI 的任何段中删除在路径参数中指定的会话 ID,而不仅仅是最后一个段。 (markt)

通用

  • 修复: 62689: 修正 1.2.44 中的回归问题,该问题破坏了对 OPTIONS * 请求的请求处理。 (rjung)
  • 代码: 优化路径参数处理。 (rjung)
  • 修复: 改善路径参数解析,以便可以从 URI 的任何段中的路径参数中提取由负载均衡工作程序的 session_path 工作程序属性指定的会话 ID,而不仅仅是从最后一个段中提取。 (markt)

1.2.43 和 1.2.44 之间的更改

原生

  • 更新: 删除 Novell Netware make 文件和 Netware 特定源代码,因为五年多来没有可用的受支持的 Netware 版本。 (markt)
  • 更新: 57946: Apache: 更新文档以使用 httpd 2.4.x 风格的访问控制指令。 (markt)
  • 修复: 58287: 通用: 在 Windows 上使用本地互斥锁而不是全局互斥锁,以更好地支持多用户环境。 (markt)
  • 修复: 59897: Apache: 使用 poll 而不是 select 来避免 select 触发 httpd 崩溃的限制。补丁由 Koen Wilde 提供。 (markt)
  • 修复: 60745: ISAPI: 删除拒绝包含与 WEB-INF 或 META-INF 匹配的路径段的请求的检查,因为它重复了 Tomcat 执行的检查,并且由于 ISAPI 无法看到当前上下文路径,因此无法实现此检查而不会拒绝有效的请求。 (markt)
  • 添加: 当所有 ajp13 工作者都失败时,阐明负载均衡工作者的行为,特别参考重试属性的作用。(markt)
  • 添加: 62408: 添加新的负载均衡工作者属性 lb_retries 以改进对重试次数的控制。基于 Frederik Nosi 提供的补丁。(markt)
  • 修复: 将请求 URI 的规范化重构到一个公共位置,并将 mod_jk 的规范化实现与 Tomcat 中的实现对齐。(markt)
  • 添加: 在文档中添加一个说明,指出由于对齐规范化以与 Tomcat 中的实现对齐而做出的更改,CollapseSlashes 选项现在实际上是硬编码为 CollpaseSlashesAll。(markt)
  • 更新: 将 ISAPI 重定向器捆绑的 PCRE 更新到 8.42。(rjung)
  • 更新: https://git.savannah.gnu.org/git/config.git 更新 config.guess 和 config.sub。(rjung)

1.2.42 和 1.2.43 之间的更改

原生

  • 修复: 61733: LB: 将状态工作者应用的负载因子更改正确传播到负载均衡子工作者,以传播到所有进程。基于 Jonathan Oddy 提供的补丁。(rjung)
  • 修复: ISAPI: 对齐 32 位和 64 位构建的 make 文件。(markt)
  • 更新: http://git.savannah.gnu.org/cgit/config.git 更新 config.guess 和 config.sub。(rjung)
  • 更新: 将 ISAPI 重定向器捆绑的 PCRE 更新到 8.41。(rjung)
  • 修复: 更新 ISAPI 重定向器安装文档以反映当前支持的 Windows 版本。(markt)
  • 修复: 将 ISAPI 重定向器执行的规范化与 Tomcat 中的实现对齐。(markt)

1.2.41 和 1.2.42 之间的更改

原生

  • 修复: 状态: 当使用 AJP 工作者而没有负载均衡工作者时,修复显示的从后端读取和写入的字节数。(rjung)
  • 修复: Apache: 如果在早期处理阶段从客户端读取请求主体时已经失败,则在清理期间不要尝试读取剩余的请求主体部分。(rjung)
  • 修复: 57485: Apache: 将从客户端读取请求主体的错误传播到 mod_jk,以便 Tomcat 看到错误而不是截断的主体。(markt)
  • 修复: 57836: ISAPI: 空的 REMOTE_USER 不应该被翻译为 ""。(rjung)
  • 修复: 58249: 在文档中添加说明,如果指定的值不是 1024 的倍数,则 max_packet_size 将对齐到下一个 1024 的倍数。 (markt)
  • 更新: 58309: ISAPI: 将捆绑的 pcre 从版本 5.0 更新到 8.38。 (rjung)
  • 修复: 58286: 修复 mod_jk 和 ISAPI 重定向器中的崩溃。 崩溃仅在 Windows 上获取 HTML 格式的 jk-status(默认格式)时发生。 此回归是由对 54177 的修复引入的。 (rjung)
  • 修复: 58285: 不要在 GCC 不提供原子操作实现的平台上使用 GCC 原子操作。 此回归是由对 4445456703 的修复引入的。 (rjung)
  • 修复: 58425: 修复 1.2.41 中的回归,该回归阻止了 AJP 1.2 工作器初始化。 请注意,AJP 1.2 协议已弃用。 补丁由 yagisita 提供。 (markt)
  • 修复: 58504: 如果使用后台线程执行工作器维护,请确保维护运行不会被跳过。 补丁由 Hiroto Shimizu 提供。 (markt)
  • 修复: 58608: ISAPI: 添加一个新的注册表选项“flush_packets”,允许控制 IIS7+ 的刷新行为。 默认情况下不刷新。 将选项设置为“true”会导致 IIS 在收到每个 AJP 数据包时将数据写入客户端。 (markt)
  • 修复: 58813: ISAPI: 正确释放互斥锁,允许插件完成初始化。 在此修复之前,不完整的初始化会导致关闭时挂起。 补丁由 Matthew Reiter 提供。 (markt)
  • 修复: 58895: 修正与后端服务器通信尝试次数的日志消息中的一个越界错误。 补丁由 Hiroto Shimizu 提供。 (markt)
  • 修复: 59164: 修复如果为无法解析为 IP 地址的 worker 指定主机名,则在首次连接时崩溃的问题。 (markt)
  • 修复: 59184: HTTPD: 避免在 mod_jk 配置了 JkShmFile 的无效值时出现段错误。这会导致服务器启动失败。 (markt)
  • 修复: 代码清理和优化。 (markt)

1.2.40 和 1.2.41 之间的更改

原生

  • 修复: AJP, LB: 在维护功能期间减少锁争用。这在使用大量 AJP13 和 LB worker 时很明显,尤其是在与 Apache httpd prefork MPM 结合使用时。 (rjung)
  • 修复: 57060: 允许从源代码树外部构建。补丁由 Petr Sumbera 贡献。 (rjung)
  • 修复: 56703: 状态: 修复了后端连接数的膨胀计数器,尤其是在后端发生连接超时时。 (rjung)
  • 修复: 56661: 修复 Servlet API getLocalAddr()。适用于 Tomcat 6.0.42、7.0.55 和 8.0.11 以及 Apache 和 ISAPI 插件。 (rjung)
  • 更新: 状态: 在更改 worker 属性时记录旧值和新值。 (rjung)
  • 修复: 56667: 状态: 修复更改所有成员的激活状态时的日志消息。 (rjung)
  • 修复: 56565: 修复非双网络堆栈上的 IPV6 地址解析。 (mturk)
  • 修复: 50511: 将来自 "OPTIONS *" 请求的日志级别从警告降低到调试。 (rjung)
  • 修复: Apache: 复制日志注释而不是使用引用,以防止访问已关闭池中的内存。 (rjung)
  • 添加: 添加选项以控制处理挂载和卸载中的多个相邻斜杠。新的默认行为是仅在卸载时折叠斜杠。配置通过 Apache 的新 JkOption("CollapseSlashesAll"、"CollapseSlashesNone" 或 "CollapseSlashesUnmount")以及 IIS 的属性 "collapse_slashes"(值 "all"、"none"、"unmount")完成。这是对 CVE-2014-8111 的修复。 (rjung)
  • 添加: 添加更多对共享内存分配的检查。 (rjung)
  • 添加: 56869: 状态: 将最大打开后端连接数添加到状态工作器。补丁由 Martin Knoblauch 贡献。 (rjung)
  • 添加: 56770: AJP: 将工作器名称添加到所有日志消息。补丁由 Martin Knoblauch 贡献。 (rjung)
  • 修复: 50186: 文档: 在 Tomcat AJP 连接器配置中澄清 "connection_pool_timeout" 与 "keepAliveTimeout" 或 "connectionTimeout" 之间的关系。 (rjung)
  • 修复: 52334: LB: 在第一次恢复尝试后,根据最后一次恢复尝试时间而不是原始错误时间计算工作器恢复时间。 (rjung)
  • 修复: 54596 第 1 部分: IIS: 修复从配置中解析没有 ".." 目录组件的相对文件名时缺少最后一个字符的问题。 (rjung)
  • 修复: 54596 第 2 部分: IIS: 修复在配置中使用相对文件名,其中 ".." 路径段向上遍历目录层次结构,高于相对文件名的起点。 (rjung)
  • 修复: 状态: 如果状态工作器输出由于缓冲区大小不足而被丢弃,则添加日志记录。 (rjung)
  • 修复: 将日志缓冲区从 8KB 减少到 1KB。在日志记录失败的情况下添加日志记录,并将可能被截断的行末尾添加 "..."。 (rjung)
  • 更新: 用动态分配替换 fail_on_status 的 32 个条目的固定分配。 (rjung)
  • 添加: 对工作器属性 "name"、"host"、"route"、"domain"、"redirect"、"session_cookie"、"session_path" 和 "set_session_cookie" 的最大长度 "60" 强制实施实现限制。检查已添加到配置文件处理和通过状态工作器进行的配置更新中。 (rjung)
  • 添加: 52483: Apache: 为 JkOptions 配置处理结果添加调试日志。 (rjung)
  • 修复: 54177: 状态: 使用数字时间戳而不是文本时间戳,以避免非格式良好的 XML 输出。 文本时间戳根据区域设置格式化,将它们重新编码为 UTF-8 会很麻烦。 (rjung)
  • 修复: 56618: 状态: 读取查询字符串参数时使用百分比解码。 例如,这修复了通过状态工作程序编辑 IPv6 地址的问题,如果客户端将 ":" 编码为 "%3A"。 补丁由 Christopher Schultz 贡献。 (rjung)
  • 修复: 56452: 修复 IPv6 地址调试日志中的崩溃。 补丁由 Christopher Schultz 贡献。 (rjung)
  • 修复: 34526: Apache: 提高与 mod_deflate 请求体膨胀的兼容性。 没有实现对 mod_deflate 膨胀的自动检测。 使用新的 Apache 环境变量 JK_IGNORE_CL,让 mod_jk 忽略现有的 Content-Length 请求头。 (rjung)
  • 更新: 44454: LB: 在文档中添加有关“忙碌”负载均衡方法问题的警告。 (rjung)
  • 修复: 44454: 使用原子操作改进繁忙计数器。 (rjung)
  • 修复: 56703: 状态: 改进连接计数器。 使用原子操作,对于 mod_jk (Apache),正确地减少由停止的子进程关闭的连接。 (rjung)
  • 修复: 44571: 确保如果我们无法为工作程序获取端点,则返回状态 503。 (rjung)
  • 修复: Apache: 改进优雅或正常重启期间的日志处理。 (rjung)
  • 修复: 在使用 CPing 选择性检查空闲连接期间,不要更新工作程序连接的最后访问时间。 更新时间戳会破坏关闭空闲连接。 (rjung)
  • 修复: 调整连接关闭期间使用的延迟参数。 (rjung)
  • 修复: 修复基于 autoconf 的构建期间,针对 autoconf PACKAGE 定义的烦人重新定义警告。 (rjung)
  • 修复: 状态:使用多行表格标题并修复无效的 xml 输出。 (rjung)
  • 修复: 44571: 实现对工作进程允许的并发请求数的可选限制(属性“busy_limit”)。 原始补丁由 zealot0630 在 gmail dot com 贡献。 (rjung)
  • 修复: 将日志消息“所有端点已断开连接”更正为“未找到可用连接,将创建一个新的连接”。 将常见情况下的语气从信息日志级别调整为调试级别。 (rjung)
  • 添加: 57536: AJP:允许配置连接源地址。 这仅应在多宿主主机上使用。 此功能处于实验阶段。 (rjung)
  • 添加: 57540: AJP:转发用于处理请求的 SSL 协议名称(SSLv3、TLSv1、TLSv1.1、TLSv1.2)。 (rjung)

1.2.39 和 1.2.40 之间的更改

原生

  • 修复: 修复分块请求的转发,该转发在 1.2.39 版本中已损坏。 (rjung)
  • 修复: 56352: 修复内存释放方面的回归。 (mturk)
  • 修复: 修复在名称或端口更改后,状态工作进程显示工作进程 IP 地址的问题。 (rjung)
  • 更新: 56297: 改进密钥哈希函数。 从 APR 复制。 (rjung)
  • 修复: 55683: 从带引号的会话 cookie 中删除引号。 (rjung)
  • 修复: 53542: ISAPI:修复 503 错误页面中的语法。 (rjung)
  • 修复: 55696: 在 Mac OS X 10.9 上配置解析期间崩溃。 (rjung)

1.2.37 和 1.2.39 之间的更改

原生

  • 更新: 从 Apache Tomcat 连接器中弃用 nt_service。 (mturk)
  • 修复: 56133: 修复在请求体传输到后端期间请求失败且设置了 reply_timeout 时可能发生的崩溃。补丁由 Hiroto Shimizu 贡献。 (rjung)
  • 修复: 修复状态工作器未更新所有成员的参数。 (mturk)
  • 修复: 55853: HTTPD: 使用正确的 API 设置 Content-Length。补丁由 areese yahoo-inc.com 贡献。 (rjung)
  • 添加: 添加对连接到 Web 服务器的 IPV6 支持。添加了新的指令 prefer_ipv6 来控制主机名解析并保持向后兼容性。 (mturk)
  • 添加: 添加 --disable-sock-cloexec 到配置中,以禁用 SOCK_CLOEXEC 的使用(使用 FD_CLOEXEC + fnctl 代替),以便构建的模块可以与 2.6.27 之前的 Linux 内核一起使用。 (timw)
  • 更新: 清理配置文件解析。工作器名称现在限制为 60 字节。 (rjung)
  • 更新: 允许设置粘性 cookie,以防 Web 框架破坏 Tomcat 将路由 ID 添加到 JSESSIONID cookie 末尾的操作。 (rjung)
  • 更新: 将 max_packet_size 也用于请求体转发。 (rjung)
  • 更新: Apache 2.4: 默认情况下,将由 mod_remoteip 提供的逻辑客户端地址转发。当设置 JkOptions ForwardPhysicalAddress 时,mod_jk 将改为转发物理对等地址。 (rjung)
  • 更新: 细微的文档改进。 (rjung)

1.2.36 和 1.2.37 之间的更改

原生

  • 修复: 修复回归,该回归会导致在工作器同时被定义为负载均衡器成员和独立工作器时 Web 服务器崩溃。 (mturk)
  • 修复: 修复如果指定了调试日志级别且没有会话标识符存在时出现的核心问题。 (mturk)

1.2.35 和 1.2.36 之间的更改

原生

  • 修复: 使用命名共享内存对象,以便我们保留运行时配置的数据,而不是在每次子进程创建时重置。 (mturk)
  • 修复: 修复关闭时未释放互斥锁导致的死锁。 (mturk)
  • 修复: 修复 mod_jk 在 HTTPD 1.3 上的编译。 (rjung)
  • 修复: 46893: HTTPD 1.3: 将修复应用于 HTTPD 1.3。它在 1.2.30 版本中已针对 HTTPD 2.x 修复。 (rjung)
  • 更新: HTTPD 1.3: 允许设置执行 JkStripSession 时使用的路径参数。自 mod_jk 1.2.27 版本起,此功能已在 HTTPD 2.x 中可用。 (rjung)

1.2.33 和 1.2.35 之间的更改

原生

  • 修复: HTTPD: 修复未知工作程序名称导致的崩溃。 (mturk)
  • 修复: IIS: 修复工作程序进程回收导致的崩溃。 (mturk)
  • 修复: 52659: IIS: 修复共享内存损坏。 (mturk)
  • 修复: 52921: HTTPD: 修复 URI 映射中的崩溃。 (mturk)

1.2.32 和 1.2.33 之间的更改

原生

  • 修复: 52793: AJP: 修复转发工作程序激活状态的默认值。由 Yoshihito Fukuyama 贡献。 (rjung)
  • 修复: HTTPD: 通过使用 client_* 而不是 remote_* 变量来改进对 HTTPD 2.4 的支持。 (rjung)
  • 修复: 52564: 修复使用格式检查 gcc 安全强化 cflags 构建。由 Tony Mancill 贡献。 (rjung)
  • 修复: 52567: 如果负载均衡器成员处于恢复状态,则在空闲时可以切换回错误状态。 (rjung)
  • 更新: 如果无法加载 URI 工作程序映射文件,则记录错误,并改进 IIS 上不可读工作程序文件的记录。 (timw)
  • 更新: 删除已弃用的 JNI 工作程序和对 Java SDK 的构建依赖关系。 (mturk)
  • 修复: 51253: 使用服务器生成的错误页面时转发 WWW-Authenticate 标头 (rjung, mturk)。
  • 更新: 46406: IIS: 在配置中支持相对路径。这些路径被假定为相对于 isapi_redirect.dll。(mturk)
  • 修复: 50233: 不要对 uri 大小使用硬限制。(mturk)
  • 更新: IIS: 使用 Windows Server 2003 SP1、Windows XP SP2 作为支持的最低版本。(mturk)
  • 修复: 47038: 使用 --enable-flock 进行配置时修复编译器警告。(rjung)
  • 添加: 51326: URI 映射:添加 "session_cookie" 和 "session_path" 规则扩展。由 Eiji Takahashi 贡献。(rjung)
  • 更新: 51333: IIS: 文档 64 位环境的配置要求。(rjung)
  • 添加: 51743: HTTPD: 使用环境变量(例如 JK_WORKER_NAME)定义请求工作器时,支持规则扩展。(rjung)
  • 修复: 51769: IIS: 允许包含 "META-INF" 或 "WEB-INF" 的 URI,只要它们不是 URI 的路径组件。(rjung)
  • 修复: 52056: HTTPD: JK 请求日志并不总是记录正确的响应状态。通过重构 JK 请求日志以使用标准请求日志钩子来修复。(rjung)
  • 添加: HTTPD: 允许使用环境变量 JK_ROUTE 选择粘性工作器。如果会话和路由以非标准方式随请求一起发送,则可以使用此方法。(rjung)
  • 添加: URI 映射:将 "sticky_ignore" 扩展属性添加到 uri 工作器映射。它允许为单个挂载禁用粘性。(rjung)
  • 添加: HTTPD: 允许使用环境变量 JK_STICKY_IGNORE 动态禁用粘性。这对于像登录表单这样的非粘性请求来说,可以用来打破 cookie 粘性。(rjung)
  • 添加: LB: 新的负载均衡方法 "Next" 以循环方式分配会话。(rjung)
  • 添加: LB: 为状态工作器和 HTTPD 注释添加已创建会话的计数器。它实际上计算了不携带会话 ID 的请求数量。(rjung)
  • 添加: URI 映射: 向 uri 工作器映射添加 "无状态" 扩展属性。这可以改善会话负载均衡。(rjung)
  • 添加: HTTPD: 允许使用环境变量 JK_STATELESS 动态切换请求到 "无状态"。(rjung)
  • 更新: AJP: 当请求不适合 AJP 数据包时改进日志记录。(rjung)

1.2.31 和 1.2.32 之间的更改

原生

  • 修复: 51417: 通过查询工作器端点修复工作器繁忙检测。放弃的连接可能会使工作器处于繁忙状态,而不会减少繁忙计数器。(mturk)
  • 修复: 50339: 解析属性列表时修复空白修剪。(rjung)
  • 修复: 41263: 支持 Servlet API getRemotePort()。适用于 Tomcat 5.5.28、6.0.20 和 7.0.0 以及 Apache 和 ISAPI 插件。(rjung)
  • 修复: 41923: AJP: 当指定 recovery_options 4 时,在客户端写入错误时关闭到 Tomcat 的 AJP 连接,中止 Tomcat 端的响应写入。(timw)
  • 更新: AJP: 将关闭 AJP 套接字时读取的延迟字节限制为 32k,以防止客户端在大型响应主体上中止时 Web 服务器出现 CPU 尖峰。同时将总延迟时间缩短至 2 秒。(timw)
  • 修复: 50839: AJP: 修复由于延迟字节计数不正确导致的 30 秒 CPU 尖峰,导致客户端在响应写入期间中止连接时出现繁忙循环。修复了 1.2.31 中的回归。(timw)
  • 添加: LB: 将工作器激活状态转发为请求属性 "JK_LB_ACTIVATION"。可能的值为 "ACT"(活动)、"DIS"(禁用)和 "STP"(停止)。(rjung)
  • 修复: HTTPD: 当状态为 401 且使用服务器生成的错误页面时,转发来自后端的 WWW-Authenticate。(rjung)
  • 修复: 50363: IIS: 阻止 204、205 和 304 响应的空消息主体的块编码。(timw)
  • 修复: 50975: IIS: 修复当请求中也存在 Content-Length 标头时,Transfer-Encoding: chunked 请求挂起的问题。还解决了 IIS 似乎为小型块编码请求创建 Content-Length 标头的情况,而原始请求中没有该标头。(timw)
  • 修复: 47679: IIS: 停止在使用 ISAPI 重定向器作为扩展程序(未安装相应的过滤器)时截断请求标头。(timw)
  • 修复: NSAPI: 对响应使用小写标头名称。否则,Web 服务器可能会在我们的内容长度标头之外添加块传输编码标头。
  • 更新: 文档: 改善负载均衡器文档。 (rjung)

1.2.30 和 1.2.31 之间的更改

原生

  • 修复: 49413: AJP13: 在响应完成之后丢弃后端发送的刷新数据包。 (rjung)
  • 更新: AJP: 记录本地和远程套接字地址。 (mturk)
  • 更新: 看门狗: 将维护工作线程移出临界区,允许其他线程在维护期间使用连接池。 (mturk)
  • 更新: 通用: 将 svn 版本添加到初始化日志消息中。 (rjung)
  • 修复: 通用: 在跟踪日志记录期间不要销毁 errno。 (rjung)
  • 更新: Apache: 添加对 Apache 2.3/2.4 的支持。 (rjung)
  • 更新: Apache: 为 Windows 上的 mod_jk.so 添加了版本号资源。 (timw)
  • 更新: 48501: IIS: 为 ISAPI 重定向器添加了 rotatelogs 样式的日志轮转。 (timw)
  • 修复: 38895: IIS: 默认情况下使用 RAW 标头而不是 CGI 标头,以防止将下划线 '_' 转换为标头名称中的连字符 '-'。可以通过定义 USE_CGI_HEADERS 来启用旧行为。 (timw)
  • 修复: 49511: IIS: 当保持活动连接上的后续请求未映射到 ISAPI 重定向器时,不要覆盖 IIS 日志信息。 (timw)
  • 修复: 文档: 文档 SSL 信息转发所需的 SSLOptions。 (rjung)
  • 更新: 文档: 语法和样式改进,以及关于 IIS 提供静态内容的说明。补丁由 André Warnier 提供。 (rjung)
  • 修复: 文档: 更新文档中使用的 Subversion 路径。 (rjung)

1.2.28 和 1.2.30 之间的更改

原生

  • 更新: Apache: 提高与 Apache 2.3 的兼容性。 (rjung)
  • 修复: 46632: Apache: 不要为我们的池注册子进程清理。 (mturk)
  • 修复: 46893: Apache: 仅当 JkShmSize 在配置中实际设置时才记录警告。 (mturk)
  • 更新: IIS: 包含可选的分块支持。默认情况下关闭。 (mturk)
  • 修复: 48763: IIS: 使用分块编码或长度大于 4GB 时,不要发送 Content-Length。 (mturk)
  • 修复: 48223: IIS: 将正确的后端错误代码传播到 IIS。 (rjung)
  • 修复: 47867: IIS: 使用 VS2008 编译并 workers.properties 包含不支持的属性时,启动期间崩溃。补丁由 Indrek Juhani 提供。 (rjung)
  • 修复: 47628: IIS: 修复由于未释放临界区锁导致的应用程序池重启时死锁问题。补丁由 Bret Prucha 提供。 (mturk)
  • 修复: IIS/NSAPI: 纠正每行之后日志文件的刷新。 (mturk)
  • 添加: NSAPI: 添加 Microsoft Visual C++ Makefile。 (mturk)
  • 更新: AJP: 改善套接字关闭处理。 (mturk)
  • 更新: AJP: 确保我们永远不会重用不可重用的套接字。 (mturk)
  • 更新: AJP: 在等待 cpong 时容忍单个多余的数据包。 (mturk)
  • 更新: AJP: 更严格地检查协议正确性。 (mturk)
  • 更新: 48410: AJP: 使用 poll 而不是 select,以便我们可以处理超过 1024 个套接字。 (mturk)
  • 修复: 46503: AJP/Status: 工作域和路由中的垃圾数据。 (mturk)
  • 修复: 48276: AJP: 当工作进程联系无法解析时,将工作进程标记为禁用,而不是无法启动服务器。 (mturk)
  • 修复: 48169: AJP: 通过在 EXEC 期间关闭所有套接字来改善 CGI 互操作性。 (mturk)
  • 添加: 状态: 将打开的后端连接数添加到状态工作进程。此功能为实验性,显示的值可能不准确。 (mturk)
  • 更新: 47224: 状态: 当地址更改时,使端点缓存中所有打开的套接字失效。这将导致使用新地址打开新的后端连接。(mturk)
  • 修复: 48305: 状态: 在执行转储时不要显示“secret”属性。(mturk)
  • 修复: 45610: 状态: 不要接受子工作程序参数为空值的请求。(rjung)
  • 修复: 45610: 状态: 修复通过状态工作程序更新其他负载均衡器属性时错误地取消设置 sticky_session 和 sticky_session_force 的问题。(rjung)
  • 修复: 47222: 状态: 将 ping_timeout 添加到共享内存并允许动态配置。(mturk)
  • 修复: 状态: 删除负载均衡器中 AJP13 工作程序属性视图中的重复“errors”行。(rjung)
  • 修复: LB: 修复路由日志记录。(rjung)
  • 更新: 日志记录: 自动检测日志记录的线程 ID 大小。(rjung)
  • 更新: 日志记录: 在定义 JK_LOG_LOCKING 时,为 Windows 添加可选的日志文件锁定。(mturk)
  • 更新: 配置: 更新示例配置。(rjung)
  • 更新: 文档: 更新有关创建发布所需的工具的信息。(rjung)
  • 修复: 47983: 文档: 修复示例配置中的拼写错误,该错误会导致启动失败。(rjung)
  • 更新: 构建: 强制复制 automake 文件。(rjung)
  • 更新: 构建: Tomcat 代码库结构清理反映在文档和构建脚本中。(rjung, mturk)

1.2.27 和 1.2.28 之间的更改

原生

  • 添加: Apache: 添加更多环境变量来覆盖请求信息。在代理位于 Apache 前面并将原始请求信息(例如通过自定义标头)发送给我们时很有用。(rjung)
  • 更新: Apache: 不再为 JK 请求日志预分配条目。 (rjung)
  • 修复: 46352: Apache: 修复在没有 JkMount 的 VHost 中使用 SetHandler jakarta-servlet 时发生的崩溃。 崩溃是由于挂载扩展的初始化不正确造成的。 (rjung)
  • 修复: Apache: JkWatchdogInterval 的间隔计算错误,导致看门狗间隔比配置的间隔高 10 倍。 (mturk)
  • 修复: Apache: 默认情况下激活 SSL 密钥大小的转发。 (rjung)
  • 修复: 46169: Apache 1.3: 反向移植 use_server_errors 挂载扩展。 (rjung)
  • 修复: 46763: Apache 2.0: 在优雅重启期间幸存日志互斥锁。 补丁由 Eiji Takahashi 提供。 (mturk)
  • 修复: 46416: Windows 上的 Apache 2.0: 即使 apr 不包含 mstcipip.h,也要包含它。 (mturk)
  • 更新: IIS: 定期更新 uriworkermap.properties 文件。 这需要定义 worker_mount_reload 和 watchdog_interval。 (mturk)
  • 更新: IIS: 从注册表文件中删除过时的条目。 (mturk)
  • 修复: 46579: IIS: 使用本地环境表而不是环境变量来设置 JKISAPI_PATH 和 JKISAPI_NAME。 (mturk)
  • 更新: LB: 添加新属性 error_escalation_time 以微调将本地错误升级为全局错误。 (rjung)
  • 更新: LB: 如果粘性会话亲和性标记包含点,则将点之前的部分视为域名。 这允许使用域名故障转移实现完整的节点会话亲和性。 (mturk)
  • 修复: LB: 使强制恢复与本地错误状态一起工作。 (rjung)
  • 修复: LB: 只有在我们实际拥有新状态时才更新错误状态和错误时间。 (rjung)
  • 修复: LB: 当达到 max_reply_timeouts 或 fail_on_status 触发硬错误时,将全局工作程序状态设置为错误。 (rjung)
  • 更新: AJP: 添加新的错误类型 JK_AJP_PROTOCOL_ERROR。 (mturk)
  • 更新: AJP: 允许工作程序端口小于或等于 1024。 (rjung)
  • 更新: AJP: 改进了一些 AJP 错误日志消息。 (mturk)
  • 更新: 状态: 允许更改 AJP 工作程序的工作程序地址和端口。 地址将在下次对该工作程序的请求时解析。 (mturk)
  • 更新: 状态: 允许更新操作在结果页面中显示错误消息。 (rjung)
  • 更新: 状态: 重构更新操作。 (rjung)
  • 更新: 状态: 如果操作期间发生错误,不要重定向到显示或列表页面。 (rjung)
  • 更新: 状态: 在显示中包含错误时间。 (rjung)
  • 更新: 状态: 从工作程序显示中删除冗余的端口信息。 重命名地址列并从图例中删除其说明。 (rjung)
  • 更新: 状态: 优化强制 uriworkermap.properties 重新加载。 (mturk)
  • 修复: 状态: 修复文本显示中的崩溃。 (rjung)
  • 修复: 状态: 显示 - 编辑 - 显示始终以单个 lb 成员显示结束,即使从所有成员 lb 显示开始也是如此。 (rjung)
  • 修复: 状态: 子工作程序名称中的通配符对于更新操作已损坏。 (rjung)
  • 修复: 状态: 将 use_server_errors 添加到映射显示。 (rjung)
  • 更新: SHM: 将锁定移入数据拉取和推送方法。 (rjung)
  • 更新: JNI: 弃用 JNI 工作程序。 (rjung)
  • 修复: Netware: 缺少 MAX_PATH 的定义。 Guenter Knauf 的补丁。 (rjung)
  • 更新: 文档: 添加一个关于反向代理的新 HowTo 页面。 (rjung)
  • 更新: 文档: 在超时文档中添加对本地错误状态的解释。 (rjung)
  • 更新: 文档: 阐明 socket_timeout 和 socket_connect_timeout 之间的关系。 (rjung)
  • 更新: 文档: 阐明 IIS URL 重写功能。 (rjung)
  • 修复: 46834,46734: 文档:修复一些缺失或损坏的链接。 (markt,rjung)
  • 修复: 文档:将 2008 年新闻添加到主页和菜单。 (mturk, rjung)

1.2.26 和 1.2.27 之间的更改

原生

  • 修复: 46109: 即使 lb 方法是忙碌,也要衰减 reply_timeouts。在强制恢复期间也要重置 reply_timeouts。 (rjung)
  • 更新: AJP13:如果之前的请求未完成,则回收连接。 (mturk)
  • 更新: 维护不应该并行运行多次。 (mturk)
  • 修复: Apache:修复重启期间的小内存泄漏。 (mturk)
  • 更新: 改善套接字关闭期间的信号处理。 (mturk)
  • 添加: URI 映射:为 uri 工作者映射添加调试转储功能。 (rjung)
  • 更新: 为非发布版本添加版本信息中的修订号。 (rjung)
  • 添加: IIS:可选地允许对响应进行分块编码。目前仅在使用 ISAPI_ALLOW_CHUNKING 定义构建时可用。基于 Tim Whittington 的补丁。 (rjung)
  • 更新: IIS:可选地使用原始标头而不是 CGI 标头。修复了标头名称中的“下划线=破折号”问题。目前仅在使用 USE_RAW_HEADERS 定义构建时可用。 (rjung)
  • 更新: IIS:可选地提高 IIS 5.1 兼容性。目前仅在使用 AUTOMATIC_AUTH_NOTIFICATION 定义构建时可用。基于 Tim Whittington 的补丁。 (rjung)
  • 修复: IIS:修复由于多个线程并行初始化导致的内存损坏。 (rjung)
  • 更新: Windows:使用非默认套接字保持活动间隔。 (mturk)
  • 添加: IIS:添加环境变量 JKISAPI_PATH 和 JKISAPI_NAME。 (mturk)
  • 添加: 添加了 socket_connect_timeout 指令,用于设置套接字的连接超时。这使得能够拥有较低的连接超时,但更高的操作超时。 (mturk)
  • 修复: AJP13: [CVE-2008-5519] 即使客户端在发送请求后但在提供 POST 数据之前断开连接,也始终发送初始 POST 数据包。在这种情况下,或者在客户端在读取中间断开连接的情况下,发送一个零大小的数据包,通知容器客户端连接已断开。(mturk)
  • 添加: AJP13: 添加了 connection_acquire_timeout 指令,用于设置工作程序等待可用端点的绝对超时时间。(mturk)
  • 更新: Apache: 允许设置在执行 JkStripSession 时使用的路径参数。(mturk)
  • 更新: 重构重试实现并更改重试属性的语义。(mturk)
  • 更新: 状态: 允许仅显示负载均衡器的一个成员。(rjung)
  • 更新: 状态: 添加自上次统计重置以来的秒数以及访问和传输速率的显示。(rjung)
  • 添加: AJP13: 添加可配置的 retry_interval 时间。(rjung)
  • 更新: 文档: 增强 connection_pool_size 的描述。(rjung)
  • 更新: IIS: 重构错误页面生成。(mturk)
  • 修复: IIS: 如果请求是根据 ip:port 组合处理的,则 SERVER_NAME 变量对于多个不同的服务器实例可能相同。使用请求所属的 INSTANCE_ID 变量代替。(mturk)
  • 添加: 允许转发服务器错误页面。这可以通过使用新的 use_server_errors 扩展名在每个 URI 基础上完成。(mturk)
  • 添加: 添加了 session_cookie 和 session_path 用于配置默认会话标识符。(mturk)
  • 更新: 将 max_packet_size 也用作 TCP 发送和接收缓冲区大小。(mturk)
  • 更新: Apache: 如果 mod_jk 仅为单线程服务器 (prefork) 构建,则不允许 Apache 在多线程模式下启动。(mturk)
  • 修复: 45812: 添加 done() 服务方法,该方法导致为 Apache httpd 2.x 发送 EOS 存储桶。这允许过滤器链正常工作。(mturk)
  • 添加: 添加了 connection_ping_interval、ping_timeout 和 ping_mode 指令。(mturk)
  • 修复: Apache: 在构建模块时使用 apxs 提供的正确 ld 标志。防止 AIX 上 httpd 1.3 模块的一些崩溃。(rjung)
  • 修复: 文档: 状态工作程序中的 "val" 属性编号需要从 0 开始而不是 1。(rjung)
  • 更新: 文档: 从工作程序通用操作指南中的示例配置中删除 JNI 参数。(rjung)
  • 修复: 45026: 对于 Apache httpd 2.x,如果从后端获取到空的 reason phrase,则添加 "Unknown Reason" 作为 reason phrase。否则 httpd 2.x 将返回状态 500。 (rjung)
  • 修复: 构建: 修复 Cygwin 构建。 (rjung)
  • 更新: 文档: 在文档中添加信息,说明通过 JkEnvVar 发送的变量不会列在 request.getAttributeNames() 中。 (rjung)
  • 添加: 添加用于 Apache 2.x 和 IIS 的后台线程,用于执行内部维护(空闲连接检查、后端探测)。请参阅 JkWatchdogInternal(Apache)和 watchdog_interval(IIS)。 (mturk)
  • 更新: 将一些消息的日志级别从错误更改为信息。 (mturk)
  • 修复: 文档: 修复 worker 属性 "secret" 的文档。 (rjung)
  • 更新: 通过额外的预处理器定义检测各种 Web 服务器的正确插件名称。 (rjung)
  • 修复: 负载均衡: 如果存在打开的通道,则不要将负载均衡器节点置于错误状态。这修复了由于繁忙导致新连接失败的错误,导致打开的连接失败粘性。这将恢复每个节点的繁忙计数器和每个请求的私有状态数组。我们可以将状态标记为错误以使故障转移起作用,同时仍然运行并将节点报告为正常,如果存在打开的工作连接。 (mturk)
  • 修复: 44738: 修复虚拟主机之间 JkOption ForwardURI* 的合并。补丁由 Toshihiro Sasajima 贡献。 (rjung)
  • 添加: URI 映射: 向 URI 工作器映射添加扩展属性。允许的属性包括 reply_timeout、active/disabled/stopped 和 fail_on_status。目前仅在 httpd 和 IIS 中实现使用。 (rjung+mturk)
  • 修复: URI 映射: 使动态重新加载原子化并释放不再需要的内存。 (rjung)
  • 添加: 配置: 在使用新的 --enable-api-compatibility 配置开关构建时,不要使用 post httpd 2.2.0 API 函数。 (rjung)
  • 修复: Apache: 如果虚拟主机中没有 JkMount,则 JkAutoAlias 不能与 JkMountCopy 结合使用。 (rjung)
  • 更新: 负载均衡: 优化状态宏以提高性能。 (rjung)
  • 添加: Apache: 允许使用环境变量 JK_REPLY_TIMEOUT 动态设置回复超时。 (rjung)
  • 添加: 状态: 为 ajp 工作者和 ajp 负载均衡成员添加 ajp 参数的可管理性。(rjung)
  • 更新: 状态: 更改更新操作的参数名称,使其更易于与其他参数区分。(rjung)
  • 添加: 状态: 为非负载均衡成员的工作者添加 ajp 工作者统计信息。(rjung)
  • 更新: AJP: 重构工厂,将 ajp13/ajp14 的公共部分移至 ajp_factory。(rjung)
  • 更新: 状态: 仅同步我们更改了值的那些工作者的 shm 工作者配置值。(rjung)
  • 修复: 状态: 设置 lb_factor 而不是 distance。(rjung)
  • 更新: 状态: 细微的布局更改,使用下拉菜单而不是多个文本链接。(rjung)
  • 更新: SHM: 在负载均衡和状态工作者中使用负载均衡子工作者的只读属性的本地副本。(rjung)
  • 更新: 状态: 添加 "dump" 操作以转储我们的初始配置。(rjung)
  • 更新: 状态: 使用属性表来决定哪个 cmd 操作使用哪个输出元素。(rjung)
  • 更新: 通用: 在 worker_env 中包含原始配置映射,使其可供工作者使用,例如状态工作者。(rjung)
  • 更新: 负载均衡: 重构 "route" 返回值以供 httpd 注意。不要使用 worker_record 的成员,因为那不是线程安全的。(rjung)
  • 更新: 通用: 重构 "retries",从服务和 jk_worker 中删除,移至 ajp 工作者。(rjung)
  • 更新: SHM: 在 shm 中使用不同的结构体来表示负载均衡和 ajp13。这提高了类型安全性并节省了一些字节。(rjung)
  • 更新: SHM: 删除未使用的属性。(rjung)
  • 更新: SHM:自动为所有 Web 服务器确定 shm 大小。(rjung)
  • 更新: SHM:使所有 Web 服务器的打开/附加日志记录保持一致。(rjung)
  • 更新: 状态:在输出中包含服务器本地时间。(rjung)
  • 修复: 44116:修复对多个 JSESSIONID cookie 的处理。(rjung)
  • 修复: 37850:在适当的地方使用线程安全的 localtime_r。(rjung)
  • 修复: 在更多平台上使用线程安全的 strtok_r,尤其是 AIX。(rjung)
  • 更新: 状态:改进 XSS 加固。(rjung)
  • 更新: 35303:将服务成员的默认值初始化从特定于 Web 服务器的代码移到我们的通用 jk_init_ws_service() 函数。(rjung)
  • 修复: 36385:在连接后立即添加缺少的预后 CPing/CPong,以防使用预后 CPing,但没有连接 CPing。(rjung)
  • 更新: 37322:Apache:增强 jk_error_exit() 中消息格式化的健壮性。(rjung)
  • 修复: 44147:多个负载均衡工作器问题。(rjung)

1.2.25 和 1.2.26 之间的更改

原生

  • 修复: 42003:分配内存,而不是使用来自堆栈的固定大小。(mturk)
  • 修复: 43229:负载均衡器在回复超时后不会进行故障转移。(rjung)
  • 修复: JKStatus:修复详细的 Apache httpd 版本显示。这对于 httpd 版本 2.2.4+ 来说是错误的。(rjung)
  • 更新: LB/AJP:jk_connect.c、jk_ajp_common.c、jk_lb_worker.c 的重构(rjung)
  • 修复: 配置:修复损坏的 apxs 自动检测。(rjung)
  • 更新: 配置:通过新的 --disable-trace 配置开关从编译代码中删除跟踪日志记录。(rjung)
  • 更新: 通用:以递减(LRU)插槽顺序维护空闲连接。(rjung)
  • 更新: Apache:即使没有设置 JkRequestLogFormat,也要为访问日志创建 JK_WORKER_ROUTE 和 JK_REQUEST_DURATION 注释。(rjung)
  • 更新: JKStatus: 增强 URI 到 worker 映射列表以用于 Apache httpd。我们现在列出所有虚拟服务器的映射,而不仅仅是调用 JKStatus 本身的那个。(rjung)
  • 更新: JKStatus: 增强 URI 到 worker 映射列表。立即更新过时的 uriworkermap.properties。(rjung)
  • 修复: 43873: 修复 httpd 重启期间发生的小内存泄漏。(rjung)
  • 更新: 通用: 允许在排除规则(即 JkUnMount)中使用 '*' 作为 worker 名称,这将覆盖所有 worker。(rjung)
  • 修复: 42038: 修正 IIS 的挂载和卸载覆盖。(rjung)
  • 修复: 43684: 在 uriworkermap.properties 文档中用 JkMountFileReload 替换 JkMountFile。(rjung)
  • 更新: Apache: 为 JkMountCopy 添加新值 "All"。(rjung)
  • 修复: 43516: 每次重启后,每个没有 JK 指令的虚拟主机都会导致 Apache httpd 模块发生 8KB 的内存泄漏。(rjung)
  • 更新: Apache: 清理服务器配置的初始化和销毁。(rjung)
  • 更新: Apache: 从每个服务器配置中删除全局配置项。(rjung)
  • 更新: Apache: 删除未使用的属性 secret_key 和 automount/JkAutoMount。(rjung)
  • 更新: 清理 jk_uri_worker_map。(rjung)
  • 更新: 文档: 对 JkShmFile 文档进行少量补充。由 Gerhardus Geldenhuis 贡献。(rjung)
  • 修复: AJP13: 在收到响应头之前忽略刷新数据包。(rjung)
  • 修复: 修复使用 worker 配置继承(属性 "reference")和日志级别调试时启动期间的崩溃。(rjung)
  • 修复: AJP13: 将头名称与预定义常量完全匹配。避免使用标准头名称作为前缀的自定义头名称可能造成的混淆。(rjung)
  • 修复: jkstatus: 修复 JkStatusUpdateTask 和 JkStatusUpdateLoadbalancerTask ant 任务中的正确参数验证。由 Christian Mittendorf 报告。(pero)

1.2.24 和 1.2.25 之间的更改

原生

  • 更新: IIS:修复 shm 关闭行为。(rjung)
  • 更新: 通用:负载均衡器中使用的 fail_on_status 可以选择性地进行故障转移,而不会将失败的工作进程置于错误状态。(rjung)
  • 更新: NSAPI:改进 Unix 的构建描述。(rjung)
  • 更新: NSAPI:添加包含 JK 版本的初始化启动消息。(rjung)
  • 修复: 通用:将静态函数声明为静态。(jim)
  • 更新: 文档:澄清 fail_on_status 行为。(rjung)
  • 修复: 通用:在返回响应头之前执行 fail_on_status。(rjung)
  • 更新: NSAPI:修复 shm 关闭行为。(rjung)
  • 更新: NSAPI:即使请求以错误结束,也设置返回状态。(rjung)
  • 更新: NSAPI:允许在 WIN32 和 Netware 上不使用 shm_file。(rjung)
  • 修复: NSAPI:修复 nsapi 在日志级别调试和未设置 refect_unsafe 时崩溃。(rjung)
  • 更新: NSAPI:改进 Solaris 和 Linux 的 nsapi 构建的 Makefile。(rjung)
  • 修复: 构建:改进 Solaris 上配置期间的 pid_t 类型检测。(rjung)
  • 更新: 构建:WIN32 和 Netware 上 gcc 的实验性构建支持。(fuankg)
  • 更新: 构建:Apache httpd 1.3/Netware 的 Makefile 优化。(fuankg)
  • 修复: 通用:修复 1.2.24 中引入的丢失刷新错误。(rjung)

1.2.23 和 1.2.24 之间的更改

原生

  • 更新: 文档:改进参考指南中的 workers.properties 描述。(rjung)
  • 更新: 文档:添加关于各种超时的 HowTo。(rjung)
  • 更新: 日志记录:如果我们有 gettimeofday(),则将毫秒添加到默认时间戳格式。(rjung)
  • 更新: Apache: 添加毫秒 (%Q) 和微秒 (%q) 作为可能的 JkLogStampFormat 转换说明符。这不会使用 strftime(),但需要 gettimeofday()。 (rjung)
  • 更新: IIS & Sun: 如果返回码为负数,则也记录服务故障。 (rjung)
  • 修复: 42849: 如果 mod_jk 初始化失败,则中止 Apache httpd 1.3 的启动。我们已经对 Apache httpd 2.x 做了同样的事情。 (rjung)
  • 修复: 42849: 如果初始化失败,则拒绝与 IIS 协同工作。相反,将向用户返回 isapi_redirect.dll 500 请求。这与 Apache Httpd 最接近,在 Apache Httpd 中,如果出现致命初始化错误,我们将拒绝启动服务器。 (mturk)
  • 修复: 负载均衡器: 修复 lb 工作线程中的死锁,该死锁在 Solaris 上针对线程化的 Apache MPM 暴露出来。 (rjung)
  • 更新: 日志记录: 将 LWP ID 处理为 32 位无符号数。尝试使其工作,尽管 pthread ID 是不透明的。 (rjung)
  • 更新: JkStatus: 添加了对 max_reply_timeouts 的操作。 (rjung)
  • 更新: LB、状态: 添加功能 max_reply_timeouts,使 lb 能够容忍偶尔发生的长时间运行请求。 (rjung)
  • 更新: JkStatus: 添加 OK/IDLE 作为 N/A 的后继者。 (rjung)
  • 更新: 状态工作线程: 重命名运行时状态。所有状态都具有主要状态 (OK 或 ERR) 和子状态。将名称 N/A 更改为 OK/IDLE。在参考指南中的状态工作线程页面中添加了有关状态含义的文档。代码中没有添加新的状态。 (rjung)
  • 更新: 通用: 添加用于恢复幂等 http 方法 HEAD 和 GET 的恢复选项。 (rjung)
  • 修复: 更正工作线程属性重试和恢复选项的文档。 (rjung)
  • 修复: 使写入日志行和行尾更加原子化。 (rjung)
  • 更新: 通用: 重构并统一了所有用例的 jk_map_read_prop* 和 jk_map_load_prop*。 (rjung)
  • 更新: 通用/Apache/IIS/Netscape: 添加一个选项来检查解码后的 URL 以查找潜在的恶意构造。 (rjung)
  • 更新: IIS: 文档 auth_complete 和 uri_select。 (rjung)
  • 更新: Apache/IIS/Netscape: 将默认转发编码更改为新的代理方法。 (jfclere, rjung)
  • 更新: 通用: 可选地在转发到后端之前重新编码 URI。 基于 httpd mod_proxy 中的 URI 重新编码。 (jfclere, rjung)
  • 更新: 通用: 自动检测 pid_t 的正确打印格式。 这至少修复了 Solaris 上的编译器警告。 (rjung)
  • 修复: 42608: 将 Content-length 处理为无符号 64 位以允许进行巨大的上传和下载。 (rjung)
  • 更新: Apache: 将转发 URI 添加到调试日志。 (rjung)
  • 更新: 文档: 阐明工作者名称和 jvmRoute 之间的关系以进行负载均衡。 (rjung)
  • 修复: 对 jk_is_socket_connected 使用初始零超时。 产生的检测结果相同,但使用 mod_jk 可显着提高性能。 在大多数情况下,操作系统不偏爱 1 微秒超时,而是将其向上舍入到更高的值(中断计时器的频率,在大多数系统上默认为 100Hz)。 该补丁由 David McLaughlin 提供。 (mturk)
  • 更新: NSAPI: 在启动期间检查正确的日志文件和 shm 文件配置。 (rjung)
  • 修复: NSAPI: 添加对重试、刷新和连接持久性的一般选项的支持。 (rjung)
  • 修复: NSAPI: 修复由于在 workers.properties 中使用 mount 属性而导致的崩溃。 更改了初始化顺序。 (rjung)
  • 修复: 改进了对 libtool 的处理,以及配置脚本中 CC 环境变量和 CC 之间的差异。 (rjung)
  • 修复: 始终使用线程支持进行构建,除非在配置期间设置了标志 --enable-prefork。 (rjung)
  • 更新: 对除 Windows 之外的平台使用 ap_snprintf.c 中的 snprintf/vsnprintf,这些平台可能在未为 Apache httpd 2.x/APR 构建(例如子 Web 服务器)或未使用配置时缺少 snprintf/vsnprintf 实现。 (fuankg)
  • 更新: 从 Apache 1.3 导入 ap_snprintf()。 (fuankg)
  • 修复: 修复启动期间的日志对象清理错误,导致至少在 iSeries 上崩溃。 (rjung)
  • 更新: 添加 jk_stat() 和 jk_file_exists() 作为包装函数。 i5/OS V5R4 要求 fopen 中的文件名使用 ASCII,但要求 stat() 中的文件名使用 EBCDIC。 (hgomez)
  • 更新: i5/OS (AS/400) V5R4 端口,其中 Apache 2.0 模块现在应该使用 UTF8。 (hgomez)
  • 更新: 文档:添加关于 V5R4 及之前版本的 i5/OS 构建的注释。(hgomez)

1.2.22 和 1.2.23 之间的更改

原生

  • 更新: [CVE-2007-0450] 和 [CVE-2007-1860]: 将 JkOptions 的默认值更改为 ForwardURICompatUnparsed。旧的默认值为 ForwardURICompat。这应该使 Apache httpd 和 Tomcat 之间的 URL 解释保持一致(防止双重解码问题)。(rjung)

1.2.21 和 1.2.22 之间的更改

原生

  • 修复: 重构行尾记录,使其适用于所有平台和 Web 服务器。(mturk)
  • 更新: 添加命令行 Windows make 文件。(mturk)
  • 更新: 允许 fail_on_status 指令为多行。(mturk)
  • 修复: 42076: 将新选项的名称从 ForwardCertChain 更改为 ForwardSSLCertChain,如文档中所述。(rjung)
  • 修复: 文档:修复几个错别字,更改几个表格的格式,修复指向新闻页面的链接。(rjung)
  • 修复: 修复新 IIS rewrite.properties 配置示例文件中 TC 6 示例的正确 URL。(rjung)
  • 修复: 向多个文件添加 svn 属性。(rjung)
  • 更新: 将 TC 6 示例添加到配置示例中的 uriworkermap.properties。(rjung)
  • 更新: 允许 fail_on_status 指令使用多个状态代码。状态代码可以用空格或逗号分隔。(mturk)
  • 更新: IIS。为 URL 重写规则添加了类似 pcre 的正则表达式。(mturk)
  • 修复: 41922: Apache 1.3。启用 JkEnvVar。(mturk)
  • 更新: Apache。添加 --enable-flock 配置参数,用于显式编译支持这些调用的操作系统的更快 flock() 系统调用。默认情况下,将使用 fcntl 系统调用进行锁定,该调用速度稍慢,但也可以在 NFS 挂载的卷上工作。(mturk)
  • 修复: 41562: 为 ISAPI 重定向器中的客户端读取添加调试日志记录。由 Tim Whittington 贡献。(mturk)
  • 更新: Apache。添加 ForwardSSLCertChain JkOption。由 Patrik Schnellmann 贡献。(mturk)
  • 修复: IIS. 如果没有映射的 worker,不要禁止访问 web-inf 或 meta-inf。这允许在映射上下文之外拥有具有这些名称的资源。(mturk)
  • 更新: Apache. 使用进程 ID 创建共享内存名称,并在退出时删除共享内存和共享内存锁文件。(mturk)
  • 修复: IIS. 修复 1.2.21 中引入的 Keep-Alive 回归。(mturk)
  • 更新: 删除启动期间对空 init_map 的未使用检查。(rjung)
  • 修复: 41770: 如果没有使用 JkWorkersFile,则修复启动错误。(rjung)
  • 更新: 在 init_jk() 中使用 JK_TRUE/JK_FALSE 代替 OK/!OK 作为返回值。(rjung)
  • 更新: 对 apache 启动日志消息进行了一些调整(何时使用 STDERR,删除已弃用的 NOERRNO 标志,shm 警告以及使用默认文件的警告)。(rjung)
  • 更新: 用 httpd mpm_query 替换 APR 预编译指令以检测 MPM 线程。添加有关自动检测的池大小的调试日志消息。(rjung)
  • 修复: 使 MMN 检查更容易理解,并且更精确(对于新的 ap_get_server_banner()/ap_get_server_description())。我们仅对 Apache httpd 2.3 使用新的 API。这样,我们的二进制文件就不会与 2.0 的次要版本紧密耦合,并且我们无论如何都不会使用 ap_get_server_banner()。(rjung)
  • 修复: 使用完整的描述字符串 ap_get_server_description() 代替 ap_get_server_banner() 中的截断信息,因为此信息在内部使用(状态 worker 显示和 ajp14 后端通信)并且不会发送回普通用户。(rjung)
  • 修复: 41757: 文档化 configure 的 "--enable-prefork" 标志。(rjung)
  • 更新: 增强解析属性映射时失败的日志消息。(rjung)
  • 修复: 在 worker 初始化期间更正日志消息,如果无法解析远程主机。我们记录了默认主机名“localhost”而不是配置的主机名。(rjung)
  • 修复: 41770: 修复 bug 的第二部分:local_worker 和 local_worker_only 缺少已弃用属性列表(也不支持),因此阻止 Web 服务器启动。(rjung)

1.2.20 和 1.2.21 之间的更改

原生

  • 修复: [CVE-2007-0774]: 拒绝服务和严重远程代码执行漏洞。由 map_uri_to_worker() 中的缓冲区溢出引起,当 URL 长度超过 4095 字节时。由 ZDI(www.zerodayintiative.com) 报告。请注意,此问题仅影响 Apache Tomcat JK Web Server Connector 的 1.2.19 和 1.2.20 版本,不影响之前的版本。Tomcat 5.5.20 和 Tomcat 4.1.34 的源代码包中包含了易受攻击的版本。其他版本的 Tomcat 未受影响。
  • 添加: 检查 worker. 参数,如果参数无效,则不要启动。 (jfclere)
  • 添加: 41439: 通过添加 JkStripSession 指令(可针对每个虚拟主机配置)允许在 Apache 中从静态内容的 URL 中剥离会话 ID。 (mturk)
  • 添加: 更改 JkEnvVar 变量的空默认值的语义。在 1.2.19 之前:不允许。在 1.2.20 中:如果在配置中或运行时未设置为非空字符串,则将变量发送为空字符串。从 1.2.21 开始:如果配置没有第二个参数,则仅在运行时设置变量时发送变量(即使设置为空字符串)。允许与 tomcat 访问日志中的条件属性良好组合。 (rjung)
  • 修复: 41610: 修复对缺少 Content-Length 标头的错误检测,导致重复标头。由 Boris Maras 贡献。 (rjung)
  • 修复: 更好地支持 SunONE(Netscape/iPlanet) Web 服务器的构建。 (jim)
  • 添加: 如果读取到重复的映射键并且不允许,例如在解析 uriworkermap.properties 时,则添加警告。 (rjung)
  • 修复: 如果 uriworkermap.properties 有重复的模式,则不要连接 worker 名称,而是覆盖 worker。 (rjung)
  • 修复: 即使在重复情况下也记录弃用消息。 (rjung)
  • 修复: uriworkermap.properties:在重新加载 uriworkermap.properties 时删除 URL 映射时修复越界问题。 (rjung)
  • 添加: 41439: 允许在 IIS 中从静态内容的 URL 中剥离会话 ID(可配置)。 (rjung)
  • 添加: 41333: 重构 isapi_plugin 配置读取。 (rjung)
  • 添加: 41332: 添加更多 errno 日志记录并统一格式。 (rjung)
  • 添加: JkStatus: 通过在消息中添加状态工作器名称来改进日志记录。 在恢复工作器操作中添加了消息。 (rjung)
  • 添加: JkStatus: 重构搜索工作器和子工作器。 (rjung)
  • 添加: 41318: 添加配置以使状态工作器用户名检查不区分大小写。 (rjung)
  • 添加: JkStatus: 将下次全局维护的预计时间添加到其他 MIME 类型,并采用 jkstatus ant 任务。 (rjung)
  • 添加: JkStatus: 显示下次全局维护的预计时间。 将显示的下次恢复时间更改为最小/最大对。 (rjung)
  • 添加: JkStatus: 允许读写状态工作器的用户临时将其切换到读写模式和只读模式。 (rjung)
  • 修复: JkStatus: 不要在只读状态工作器中显示读写命令。 (rjung)
  • 添加: JkStatus: 允许从状态工作器以管理方式将处于错误状态的 lb 子工作器标记为恢复。 (rjung)
  • 添加: 负载均衡器: 不要尝试并行多次恢复。 使用额外的运行时状态“PROBE”和“FORCED”。 (rjung)
  • 修复: JkStatus: 改善不同进程之间的数据同步。 (rjung)
  • 修复: 41381: 修复 feature fail_on_status 中的段错误(日志参数顺序错误)。 由 Juri Haberland 修补。 (rjung)
  • 修复: 在 WIN32 平台上使用正确的 Windows 行尾符用于日志文件。 (rjung)

1.2.19 和 1.2.20 之间的更改

原生

  • 添加: JkStatus Ant 任务文档页面。 (pero/rjung)
  • 添加: JkStatus Ant 任务:添加用于更新和重置的新任务。 (pero)
  • 更新: JkStatus Ant 任务:更新以适应新的 xml 状态格式。 (pero)
  • 更新: 通过状态工作程序更新操作设置枚举/布尔属性时,允许使用整型和字符串值。 (rjung)
  • 添加: 文档:状态工作程序的新参考指南页面。 (rjung)
  • 更新: 文档:将配置目录重命名为参考,并在文档中使用标题参考指南。 (rjung)
  • 更新: 为工作程序指令添加了 retry_on_status。 (mturk)
  • 更新: 状态工作程序:添加指令以使属性前缀和好/坏规则可配置。 (rjung)
  • 更新: 状态工作程序:当 att=nosw 时,省略 lb 成员。 (rjung)
  • 更新: 状态工作程序:新的命令 cmd=version 用于简短的版本输出。 (rjung)
  • 更新: 状态工作程序:新的输出类型 mime=prop 生成属性列表。 (rjung)
  • 修复: Apache:修复当 Vars 多次设置时,对 JkEnvVar 的错误处理。 (rjung)
  • 更新: 将 jvm_route 重命名为 route。 弃用 jvm_route,但在解析工作程序配置时仍将其用作回退。 (rjung)
  • 更新: IIS:使 uriworkermap 文件重新加载检查间隔可配置。 (mturk)
  • 更新: Apache:使 uriworkermap 文件重新加载检查间隔可配置。 (rjung)
  • 更新: 状态工作程序:添加指令以自定义 XML 输出 (ns、xmlns、doctype)。 (mturk)
  • 添加: 文档:包含 uriworkermap 描述的新页面。 (rjung)
  • 更新: 文档:在工作程序参考中添加了 max_packet_size 的简短描述。 (rjung)
  • 更新: 状态工作器: 所有功能现在也适用于 xml 和 txt 类型的 MIME 类型(列表、显示、更新、重置)。(rjung)
  • 更新: 状态工作器: 为负载均衡器添加了新的全局健康指标,分别为 bad(错误、恢复中或已停止)、degraded(繁忙或已禁用)和 good(其余,活动且正常或 N/A)。(rjung)
  • 更新: 状态工作器: 新的编辑页面,用于更改负载均衡器所有成员的一个属性。(rjung)
  • 更新: 状态工作器: 状态工作器的标准日志记录。(rjung)
  • 更新: 状态工作器: 代码重构。(rjung)
  • 更新: 状态工作器: 新属性 user(列表)拒绝访问,如果请求用户(指 remote_user)不在此列表中。空列表 = 不拒绝。(rjung)
  • 更新: 状态工作器: 新属性 read_only 禁用状态工作器中更改状态和配置的部分。(rjung)
  • 修复: 36121: 当 mod_jk 提供包含的 URI 时,不要更改主 URI。(markt)
  • 更新: Apache 虚拟主机: 合并 JkOptions +base - -base + +vhost - -vhost。(rjung)
  • 更新: Apache 文档: 向 Apache 配置文档添加要求、上下文信息、默认值和继承规则。(rjung)
  • 更新: 状态工作器: 向状态工作器添加源类型,并删除映射列表中冗余的“context”列(context=uri)。(rjung)
  • 更新: uriworkermap: 在重新加载文件时,所有来自先前文件版本的旧条目将在读取新条目之前被删除。(rjung)
  • 修复: 在内部将普通映射和排除映射分开。在添加规则时不要将它们视为相同。(rjung)
  • 更新: 状态工作器: 也为非负载均衡工作器和全局视图显示映射规则。(rjung)
  • 更新: Apache 虚拟主机: 使用虚拟主机日志文件而不是主日志。(rjung)
  • 更新: Apache 虚拟主机: 通过重构格式化方法,允许使用单独的时间戳格式。(rjung)
  • 更新: Apache 虚拟主机: 将所有缺少的配置项添加到虚拟主机级别。不要覆盖来自全局服务器的设置,而是在虚拟主机中未设置时继承它们。(rjung)
  • 更新: Apache: 从日志消息中删除不必要的函数名称。(rjung)
  • 更新: Apache: 添加默认日志文件位置和消息,如果使用默认位置。 (rjung)
  • 更新: Apache: 添加缺失的 JK_IS_DEBUG_LEVEL() (rjung)
  • 更新: Apache VHosts: 仅允许在全局虚拟服务器中使用 JkWorkersFile、JKWorkerProperty、JkShmFile 和 JkShmFileSize。 (rjung)
  • 更新: 添加更多 jk_close_socket() 并降低某些信息消息的日志级别。 (rjung)
  • 更新: 负载均衡器: 添加了 Sessions 策略。由 Takayuki Kaneko 贡献。 (rjung)
  • 更新: 文档: 小幅增强并与最新版本同步。 (rjung)
  • 修复: 40997: 在 uriworkermap 重新加载时,将 uri 映射与其 '!' 对应部分分开,以检查重复项。 (rjung)
  • 修复: 40877: 确保在为多个 Web 服务器子进程附加时重置共享内存。 (mturk)
  • 更新: IIS: 添加了 shm_size 属性,以便能够处理超过 64 个工作进程的配置。 (mturk)
  • 更新: IIS: 将默认线程数增加到 250,使其与 Apache Httpd 的默认配置相同。 (mturk)
  • 修复: 40966: 修复 Windows 上的套接字描述符检查。 (mturk)
  • 修复: 40965: 初始化缺失的服务参数。 (mturk)
  • 修复: 40938: 修复重写映射的释放。感谢 Chris Adams 指出这一点。 (mturk)
  • 更新: Apache: 添加了 +FlushHeader JkOptions。 (mturk)
  • 更新: 当 AJP 主体数据包大小为零时,添加了显式刷新。 (mturk)
  • 修复: 40856: 修复 URL 映射中的大小写敏感错误。 (rjung)
  • 修复: 40793: 文档: 由 Paul Charles Leddy 提供的 Apache 如何操作指南的改进。 (markt)
  • 修复: 40774: 修复错误的递归终止。此问题无意中将“引用”功能限制为 20 个工作进程。 (rjung)
  • 修复: 40716: 将“引用”功能添加到 IIS 和 Netscape。 (rjung)
  • 修复: 文档:更正了 JK_WORKER_NAME 示例中的 SetEnvIf 语法。 (rjung)
  • 修复: 文档:为 Apache 中的负载均衡器日志记录添加了遗漏的 STATE 和 ACTIVATION 注释。 (rjung)
  • 更新: Apache:使用 instdso.sh 而不是 libtool:例如,libtool 在 HP-UX 上不起作用。 (jfclere)

1.2.18 和 1.2.19 之间的更改

原生

  • 更新: 文档:将 SetHandler 和新的环境变量添加到 Apache 配置文档中。 (rjung)
  • 更新: Apache 1.3:反向移植“no-jk”功能。 (rjung)
  • 更新: Apache:添加一个环境变量,使 SetHandler “jakarta-servlet” 更实用。该变量为 JK_WORKER_NAME,但可以通过新的指令 JkWorkerIndicator 进行更改。 (rjung)
  • 修复: LB:如果单个工作进程被禁用,则不要使用单个工作进程快捷方式。 (rjung)
  • 修复: 状态工作进程:在图例中添加对激活和错误状态的简短解释。 (rjung)
  • 修复: 文档:添加 workers.properties 中各种超时值的零超时值的含义。 (rjung)
  • 修复: LB:清理 Mladen 的强制恢复。 (rjung)
  • 修复: LB:如果我们使用 BUSYNESS 方法,则不要将恢复工作进程的 lb_value 更改为最大值。 (rjung)
  • 修复: Apache:从 1.2.14 开始,mod_jk 无法检测到客户端中止。 (rjung)
  • 修复: 文档:更正了 JkEnvVar 的描述。 (rjung)
  • 修复: Solaris:在配置中检测 filio.h 以使新的连接检测在 Solaris (r432825) 上构建。 (rjung)
  • 更新: 添加功能以强制恢复属于负载均衡器的处于错误状态的所有成员的工作进程。这解决了由于 recovery_timeout 导致返回 503 的时间间隔,尽管后端已准备好处理请求。 (mturk)
  • 更新: 文档:将已弃用的指令放在它们自己的表格中。 (rjung)
  • 更新: 文档:允许工作进程名称中使用 "-" 和 "_"。 (rjung)
  • 更新: 允许使用属性“balance_workers”和“mount”的多行。 (rjung)
  • 修复: 使 jk_is_some_property 更精确地匹配。 (rjung)
  • 更新: JkStatus:使刷新间隔可更改。 (rjung)
  • 修复: JkStatus:调整恢复时间相对于全局维护的显示。 (rjung)
  • 更新: LB:如果工作进程空闲时间过长,则将其状态从 OK 重置为 NA。 (rjung)
  • 修复: 避免编译器关于使用 lb_*_type 数组的警告。使用函数代替。 (rjung)
  • 更新: 为 Apache 1 和 Apache 2 添加了 %R JkRequestLogFormat 选项。 (mturk)
  • 更新: 允许从状态管理器更改 jvm 路由。 (mturk)
  • 修复: 如果 Tomcat 在 POST 请求中间失败,不要返回 400。而是返回 500。 (mturk)
  • 更新: LB: 将 ok/error/recovering/busy 运行时状态合并为单个标量。 (rjung)
  • 更新: LB: 将 active/disabled/stopped 配置状态合并为单个标量。 (rjung)
  • 更新: LB: 添加几个 Apache 注释以启用负载均衡器结果的标准日志记录。 (rjung)
  • 更新: LB: 重新组织主负载均衡器服务循环。 (rjung)
  • 更新: 通过属性 "reference" 实现分层工作器配置。 (rjung)
  • 更新: 记录已弃用的属性。 (rjung)
  • 修复: IIS: 修复 simple_rewrite,用于重写后的 URL 大于原始 URL 的情况。 (mturk)
  • 更新: 新的 JkOption "DisableReuse" 用于禁用连接持久性。 (jim)
  • 更新: LB: 将 sessionid 获取从 get_most_suitable_worker 移动到服务中。 (rjung)
  • 更新: 所有服务方法的代码清理(使用 TRACE、JK_LOG_NULL_PARAMS、空指针检查)。 (rjung)
  • 更新: JKSTATUS: 添加刷新链接。更新没有刷新。更新后重定向到列表视图。 (rjung)
  • 更新: 在服务器中添加新的钩子 add_log_items。 (rjung)
  • 更新: APACHE httpd: 重命名 Apache 日志注释。 (rjung)
  • 更新: LB: 重命名锁和方法常量。添加默认常量。 (rjung)
  • 修复: 默认日志级别应为 INFO 而不是 DEBUG。所有服务器类型的默认日志级别应相同。 (rjung)
  • 修复: 将 rewrite_rule_map 和 log_level 设为 isapi_redirect 的非必填指令。 (mturk)
  • 修复: 40107: 重写 is_socket_connected 函数。不再使用非阻塞套接字。 (mturk)
  • 更新: 允许使用 VS2005 构建,而不会出现太多警告。 (mturk)
  • 修复: 由 MMN 决定我们应该使用哪个管道日志 API。mod_jk 1.2.18 在 Apache 1.3 版本低于 1.3.28 时会导致编译失败。 (rjung)

1.2.17 和 1.2.18 之间的更改

原生

  • 修复: 在 getsockopt 中使用 socklen_t。还引入了 jk_sock_t。 (mturk)
  • 更新: 允许恢复等待时间低于 60 秒(新的最小值为 1 秒)。 (mturk)

1.2.16 和 JK 1.2.17 之间的更改

原生

  • 修复: 修复了当某些属性由于双重锁定而更新时,jk 状态工作程序挂起的问题。 (rjung)
  • 更新: 允许 JkMount 通过将管道符号解析为两个指令标记来像 uriworkermap.properties 一样工作。 (mturk)

1.2.15 和 JK 1.2.16 之间的更改

原生

  • 更新: 为 IIS 添加了简单的重写功能。虽然简单,但它将满足大多数需求。 (mturk)
  • 更新: 添加了 RECOVER_ABORT_IF_CLIENTERROR recovery_option,如果客户端连接在请求期间断开,则关闭连接。 (mturk)
  • 更新: 将 cache_timeout 指令重命名为 connection_pool_timeout。 (mturk)
  • 更新: 添加了 connection_pool_minsize 指令。 (mturk)
  • 更新: 弃用 recycle_timeout 指令。 (mturk)
  • 更新: 修正了状态工作程序输出中的一些 HTML 语法错误。 (rjung)
  • 更新: 向状态工作程序添加了 refresh=n 参数。它将每 n 秒更新一次显示。 (rjung)
  • 更新: 负载均衡器:向负载均衡工作程序添加 distance 属性,以表达工作程序之间的偏好。 (rjung)
  • 更新: 负载均衡器:向负载均衡工作程序添加 jvm_route 属性,以便能够在不同的负载均衡器中使用相同的目标。 (rjung)
  • 更新: 状态:向状态添加 lb_mult。 (rjung)
  • 更新: 负载均衡器: 使不同的负载均衡策略以类似的方式工作(使用 lb_value,在全局维护期间使用衰减,使用整数因子作为权重。(rjung)
  • 更新: 负载均衡器: 改善锁定。(rjung)
  • 更新: 负载均衡器: 工作进程在恢复后启动速度较慢。(rjung)
  • 更新: 负载均衡器: 使不同的负载均衡策略以类似的方式工作(使用 lb_value,在全局维护期间使用衰减,使用整数因子 lb_mult 作为权重)。(rjung)
  • 更新: 负载均衡器: 将恢复检查移至全局维护。(rjung)
  • 更新: 负载均衡器: 添加全局维护方法,该方法仅在一个进程中调用。(rjung)
  • 更新: 扩展我们对 autoconf 的使用,以查找 32 位和 64 位无符号类型及其 printf 格式。(rjung)
  • 更新: 日志记录: 为 JkLogFile 和 Apache 1.3 提供管道日志记录器。(rjung)
  • 更新: 日志记录: 在每个日志级别(除了 REQUEST)的日志行中添加 PID。(rjung)
  • 更新: 日志记录: 刷新缓冲的日志以保持行顺序正确。将最终换行符与日志消息一起输出。(rjung)
  • 更新: 减少共享内存大小。(rjung)
  • 更新: 仅在实际删除旧工作进程时记录删除操作。(rjung)
  • 修复: 37469: 修复为派生子进程关闭共享内存的问题。共享内存将由父进程关闭。(mturk)
  • 修复: 37332: 修复使用 snprintf 函数时可能出现的缓冲区长度误用问题。(mturk)
  • 修复: 38859: [CVE-2006-7197] 保护 mod_jk 免受后端中错误或恶意 AJP 服务器的影响。补丁由 Ruediger Pluem 提供。(mturk)
  • 修复: 38889: 使用工作进程映射排序(根据路径元素排序),以符合 Servlet 规范。补丁由 Steve Revilak 提供。(mturk)
  • 更新: 36138: 添加了 Busyness 负载均衡方法。补丁由 Chris Lamprecht 提供。(mturk)
  • 修复: 修复悲观锁定模式。该补丁通过同步对共享内存数据的访问来正确处理突发负载。(mturk)
  • 修复: 38806: 即使工作进程被禁用,也要回收工作进程。这修复了错误状态下的热备用工作进程。(mturk)
  • 修复: 37167: 允许使用类似 BSD 的 make 进行构建。 (mturk)
  • 修复: ISAPI 插件 (isapi_redirect.dll) 未为 IIS 提供正确的请求数据以包含在 IIS 日志中。 (markt)

1.2.14 和 1.2.15 之间的更改

原生

  • 修复: 修复 AJP13 Cookie2 解析。Cookie2 始终作为 Cookie 发送。补丁由 Andre Gebers 提供。 (mturk)
  • 修复: 35862: NSAPI 插件尝试读取已释放的内存并尝试取消引用空指针。补丁由 Brian Kavanagh 提供。 (markt)

1.2.13 和 1.2.14 之间的更改

原生

  • 修复: 修复具有缓存大小设置为小于 ThreadsPerChild 的 worker mpm 的负载均衡。如果重试设置为大于 3 的值,则每次尝试睡眠 100 毫秒。这使得能够调整连接缓存,并将传入连接序列化,而不是在连接计数大于缓存大小的情况下返回繁忙。 (mturk)
  • 修复: 36525: Solaris 内核转储。 (mturk)
  • 修复: 36102: 工作进程操作不会持久化。 (mturk)
  • 修复: 35864: 状态工作进程不列出工作进程。补丁由 Martin Goldhahn 提供。 (mturk)
  • 修复: 35809: JkMountCopy 不适用于 Apache 2.0 补丁由 Christophe Dubach 提供。 (mturk)
  • 修复: 35298: 单个 IIS 站点不支持多个 JK/ISAPI 重定向器 补丁由 Tim Whittington 提供。 (mturk)

1.2.12 和 1.2.13 之间的更改

原生

  • 修复: 34397: 紧急情况被处理为错误。 (jfclere)
  • 修复: 34474: URL 中的 // 未被 Apache-1.3 正确处理。 (jfclere)
  • 修复: 使用 64 位 int 表示传输/读取字节数。
  • 更新: 添加了 JkOptions +FlushPackets 用于在发送大量数据时优化内存使用。 (mturk)
  • 更新: 添加了用于负载均衡器的锁定指令,允许在突发负载的情况下更准确地负载均衡。 (mturk)
  • 更新: 添加了 worker.maintain 指令以允许自定义默认的 10 秒超时。在繁忙的服务器上,此值需要设置为更高的值。 (mturk)
  • 修复: 修复 NetWare 编译器以处理 AP13 和 AP2 SDK 之间不同类型的问题。 (fuankg)
  • 更新: 为 WIN32 生成更易读的 user.dmp 崩溃分析输出。 (wrowe)
  • 修复: 34558: 修复首次故障转移请求。 (mturk)

1.2.11 和 1.2.12 之间的更改

原生

  • 更新: 添加 ForwardLocalAddress JkOptions 标志,用于传递本地地址而不是远程地址。这对远程地址阀门很有用。 (mturk)
  • 修复: 修复当停止标志设置为 true 时,工作进程无法使用的错误。 (pero)
  • 更新: 在文档中添加负载均衡默认工作进程密钥属性。 (pero)

1.2.10 和 1.2.11 之间的更改

原生

  • 修复: 从 JK2 反向移植 SC_M_JK_STORED,用于传递任意方法而不是失败请求。 (mturk)
  • 修复: 添加了缺失的 SEARCH 和 ACL http 方法。 (mturk)
  • 更新: 在文档中添加工作进程密钥属性。 (pero)
  • 更新: 在工作进程配置中添加停止标志。 将标志设置为 true,则会停止所有到工作进程的流量。 同时更新 Tomcat 5.5.10 版本中的 Ant JkStatusUpdateTask。 仅在复制会话集群中使用。 (pero)
  • 更新: 添加了工作进程维护功能,该功能将维护所有工作进程,而不仅仅是当前工作进程。 这使得能够在所有工作进程上回收连接。 (mturk)
  • 更新: 在回收连接时使用关闭操作,而不是硬断开套接字。 (mturk)
  • 更新: 添加唯一指令检查。 现在,如果指令是唯一的,则会覆盖它们,而不是连接它们。 (mturk)
  • 更新: 允许使用多个 worker.list 指令。 (mturk)
  • 修复: 34577: 对于 IIS,记录原始请求,而不是记录 ISAPI 扩展的请求。 (mturk)
  • 修复: 34558: 确保 AJP 和 LB 工作者返回的 状态码相同。 (mturk)
  • 修复: 34423: 在 FreeBSD 等平台上使用 APR_USE_FLOCK_SERIALIZE 设置日志锁。补丁由 Allan Saddi 提供。 (mturk)
  • 修复: 33843: 修复获取用于构建 Apache HTTPD 的 LDFLAGS。补丁由 Beat Kneubuehl 提供。 (mturk)
  • 修复: 34358: 启用负载均衡器方法配置。 (glenn)
  • 修复: 34357: 在某些情况下,当使用 JkAutoAlias 指令时,Apache 2 mod_jk 会出现段错误。 (glenn)
  • 更新: 在文档中添加 --enable-prefork (pero)
  • 更新: 更新 tomcat_trend.pl 以适应新的错误日志字符串格式。 (glenn)

1.2.8 和 1.2.10 之间的更改

原生

  • 更新: 将默认共享内存设置为 64K 而不是 1M。 (mturk)
  • 修复: 如果标头大于 AJP13 限制,则不要将工作者标记为错误状态。 (mturk)
  • 更新: 在 iSeries 上,您应该使用 Apache 2.0 的最新 PTF(现在是 2.0.52)以及 ad minima SI17402/SI17061 或包含它们的累积 PTF。 (hgomez)
  • 更新: 将 xml 状态格式更改为 xml 属性语法 (pero)
  • 修复: 33248: 修复 apxs 为 APR 包含定义多个目录的构建。 (mturk)
  • 修复: 32696: 当请求 WEB-INF 时返回 404 而不是 403,以符合 Servlet 规范。 (mturk)
  • 更新: 添加了用于管理 jkstatus 的 ANT 任务。 (pero)
  • 更新: 如果设置了 socket_timeout,则在向 Tomcat 发送任何请求之前检查套接字是否存活。 (mturk)
  • 更新: 为 Apache Web 服务器添加了 JkMountFile。此文件可以包含以 (/url=worker) 格式的 URI 映射,并且每隔 60 秒检查一次更新。 (mturk)
  • 更新: 添加了状态工作者,用于使用网页管理工作者运行时数据。 (mturk)
  • 更新: 添加了负载均衡器方法指令,用于设置用于平衡工作者的算法。方法可以是 Request(默认)或 Traffic。 (mturk)
  • 更新: 添加了共享内存以允许动态配置。共享内存仅在 Unix 平台和具有多个子进程的 Web 服务器上需要。对于 Apache Web 服务器,添加了两个新的指令(JkShmFile 和 JkShmSize)。(mturk)
  • 更新: 向状态工作程序添加了 textupdate 模式以处理来自 Ant 任务的远程更新。(pero)
  • 修复: 33562: 修复当 recovery_options 大于 1 时 Reply_timeout。补丁由 Takashi Satou 提供。(mturk)
  • 修复: 33308: 修复在 Apache 1.3 中启用 ForwardDirectories 时出现的段错误。

1.2.7 和 1.2.8 之间的更改

原生

  • 更新: 允许任何人使用 windbg 或任何其他调试工具调试和诊断堆栈转储,并且(如果他们将 .pdb 文件添加到其安装中)可以理解 dr watson 日志。补丁由 William A. Rowe (wrowe) 提供。
  • 修复: 通过使用忽略类型定义的真实结构修复 in_addr_t 的使用。补丁由 William A. Rowe (wrowe) 提供。
  • 修复: 通过从其中删除 jsessionid 的就地 URI 来修复 URL 重写。(mturk)
  • 更新: 通过在负载均衡器工作程序中引入互斥锁来使负载均衡器算法线程安全。(mturk)
  • 修复: 通过使用正确的 API 函数调用添加 Content-Type 标头来修复将 IIS 错误页面发送到客户端。(mturk)
  • 修复: 32696: 防止 IIS 在请求 web-inf URL 时崩溃。(mturk)
  • 更新: 对于支持发现每个子进程的线程数的服务器,使用默认的缓存大小。(mturk)。
  • 修复: 使用不区分大小写的比较修复 Apache 内容长度标头解析。(billbarker)
  • 修复: 使用不区分大小写的比较修复解析 AJP 标头。(mturk)
  • 修复: 如果 socket_timeout 设置为零或小于零,则使用无限套接字超时。(mturk)
  • 更新: balanced_workers 更改为 balance_workers,但保留旧指令以保持向后兼容性。(mturk)。
  • 修复: 修复缓存大小设置为零的工作程序的 ajp 初始化。(mturk)
  • 更新: 32317: 使 mod_jk 复制感知(集群支持)。补丁由 Rainer Jung 提供。(mturk)。
  • 修复: 31132: 当 conf 中缺少 JkLogFile 时,发生核心转储。(mturk)

1.2.6 和 1.2.7 之间的更改

原生

  • 更新: 添加了一个名为 recover_time 的新属性,可用于更改默认的 60 秒恢复时间。(mturk)
  • 更新: 为 worker 添加了自定义重试,因此我们不再依赖默认设置。如果设置为大于 3 的数字,它将在重试次数大于 3 时休眠 100 毫秒,然后再次尝试。(mturk)
  • 更新: 添加了 JkWorkerProperty 指令,该指令允许省略 workers.properties 文件。例如:JkWorkerProperty worker.ajp13a.port=8009。(mturk)
  • 修复: 检查所有 JSESSIONID cookie 以获取有效的 jvmRoute。如果您有多个具有重叠域的 Tomcat,那么您可能会获得多个没有定义顺序的 cookie。只要不同的域没有共同的 Tomcat,这将正确路由。(billbarker)
  • 更新: 添加了 JkUnMount 指令,用于负向映射,其作用与 JkMount 指令相反。它用于阻止特定 URL 或内容类型。(mturk)
  • 更新: 添加了通配符匹配的 uri 映射。现在可以使用 JkMount 来映射 /app/*/servlet/* 或 /app?/*/*.jsp。(mturk)
  • 更新: 通过添加 Trace 选项重写日志记录。(mturk)
  • 更新: 添加了 socket_timeout 属性,用于设置套接字本身的超时时间。(mturk)
  • 修复: 将 socket_timeout 属性更改为 recycle_timeout。这更好地解释了指令的实际作用。(mturk)
  • 修复: 更改了负载均衡器算法。这种新调度程序背后的理念是:lbfactor 是我们期望这个 worker 工作的程度,或者worker 的工作配额。lbstatus 是这个 worker 需要多紧急地工作才能完成其工作配额。我们将每个 worker 的工作配额分配给 worker,然后查看哪个 worker 最需要工作(最大的 lbstatus)。然后选择这个 worker 来工作,并将它的 lbstatus 减少我们分配给所有 worker 的总工作配额。因此所有 lbstatus 的总和不会改变。(*) 如果一些 worker 被禁用,其他 worker 仍然会正确调度。(mturk)
  • 修复: 修复了在每次请求时都查找 .properties 文件的 iis 重定向器。(mturk)
  • 修复: 开始修复 64/32 位兼容性问题。(mturk)

1.2.5 和 1.2.6 之间的更改

原生

  • 修复: 修复了 LB 模式下的 POST 恢复问题。(hgomez)
  • 添加: 添加 CPING/CPONG 支持以避免 Tomcat 停止响应的问题。(hgomez)
  • 更新: 使 LB 中的 POST 恢复可配置。(hgomez)
  • 更新: 更新到 Apache 许可证 2.0。(hgomez)
  • 添加: 对于 Apache 2.0,当存在 env var no-jk 时,mod_jk 不会处理请求(拒绝),因此即使 URL 匹配也不会将请求转发到 Tomcat。例如,可以使用 SetEnvIf 或 BrowserMatch 指令来排除某些 URL/URI 或浏览器。(hgomez)
  • 修复: 添加了对 iSeries (AS/400) 的修复,它使用 XOPEN/Unix98 API,在调用 connect() 时需要设置 sa_len,这将解决 jk_connect 中的 EINVAL 错误。(hgomez)

1.2.4 和 1.2.5 之间的更改

原生

  • 修复: 修复了映射 URI 时出现的线程安全错误。(billbarker)
  • 修复: 修复了在使用 mod_jk 与 Apache 2 和 worker MPM 时解析 worker 主机名时出现的线程安全错误。(hgomez)
  • 修复: 删除了当连接到所有负载均衡 worker 失败时出现的不必要的错误消息。(glenn)
  • 修复: 当 mod_jk 无法连接到 worker 时,在错误消息中包含 worker 的名称。这在使用负载均衡 worker 时特别有用。(glenn)
  • 修复: 修复了 mod_jk.log 为 Apache 2 多次打开的问题。只能配置一个 mod_jk.log。(glenn)
  • 修复: 修复了 Apache 2 连接器,以便如果配置了 JkOptions ForwardDirectories,DirectoryIndex 可以用于 index.jsp 页面。(hgomez)
  • 修复: 修复了在 Apache 1.3 和 Apache 2.0 连接器中请求 //path/to.jsp URL 时暴露 JSP 源代码的问题。(billbarker)

1.2.3 和 1.2.4 之间的更改

原生

  • 添加: 修复了使用 libtool 为 Apache mod_jk 构建与较新版本的 Apache 2 兼容的问题。(jfclere)
  • 修复: 使用可重入版本的 strtok() 用于使用线程的 Web 服务器。这修复了 Apache 2 和 worker MPM 下的线程安全错误。(glenn)
  • 修复: 修复了 Apache 2 mod_jk 钩子优先级,以便 mod_jk 可以与 mod_alias 和 mod_dir 很好地协同工作。(glenn)

1.2.2 和 1.2.3 之间的更改

原生

  • 添加: 添加了将 JkLog 的日志输出管道到可执行文件(如 Apache rotatelogs 或 cronolog)的功能。仅限 Apache 2.0。(glenn)
  • 添加: 将 JkAutoAlias 添加到 Apache 2.0。(glenn)
  • 更新: Apache 2/1.3,如果 Tomcat 返回错误但没有内容,则让 Apache 处理 Tomcat 返回的错误。(glenn)
  • 添加: 添加了负载均衡器 sticky_session 属性。如果设置为 0,则具有 servlet SESSION ID 的请求可以路由到任何 Tomcat worker。默认值为 1,会话是粘性的。(glenn)
  • 修复: 清理了对中止的客户端连接的检测和报告。 此清理还确保 mod_jk 在远程客户端中止其连接的情况下不会将任何请求传递给 Tomcat。 (glenn)
  • 修复: 修复了 Apache 2.0 中的一个错误,该错误会导致转发到 Tomcat 的 POST 请求失败,如果它生成了由 mod_include 后处理的 SSI 指令。 (glenn)
  • 修复: 修复了 JkRequestLogFormat 在打印请求 URI 时的一个错误,该错误会导致包含十六进制转义序列的 URI 格式错误。 (glenn)

1.2.1 和 1.2.2 之间的更改

原生

  • 更新: tomcat_trend.pl 更新脚本以支持更改的已中止请求日志记录。 (glenn)
  • 修复: jk 在 Apache 2.0 中正确设置了内容类型,使其可以与 mod_deflate 和 AddOutputFilterByType 一起使用。 (hgomez)
  • 修复: jk 将检查 get_endpoint 的结果并处理失败。 如果由于内存不足条件导致分配端点失败,此调用可能会失败,从而导致我们在尝试访问端点时对 NULL 进行解引用。 (mmanders)

1.2.0 和 1.2.1 之间的更改

原生

  • 修复: 14282: 不要发送分块编码的初始块。 (costin)
  • 添加: 添加用于分析 mod_jk 日志并生成图表/报告的 perl 脚本。 (glenn)
  • 修复: 使 JK 遵守 CanonicalHost 指令。 (hgomez)
  • 修复: 日志清理。 (costin)
  • 修复: 修复 jk xdocs/docs 中的拼写错误。 (hgomez)
  • 修复: 将 JkRequestLogFormat 添加到 Apache 2.0。 (hgomez)
  • 修复: 使 JK 符合 iSeries 的最终补丁。 (hgomez)

JK 2

JK2 已进入维护模式,不再进行进一步开发。 关闭 JK2 开发的原因是缺乏开发人员的兴趣。 另一个原因是用户对采用 JK2 的兴趣不足,这是由于与 JK 相比,配置复杂性造成的。