更新: mod_magnet 存在一个小的回归问题,参见 #1307

我们最终添加了 TLS SNI 支持,以及许多其他小改进。我们还修复了管道化(这应该能解决 Lighty 作为 Debian 镜像的问题)和一些 mod_fastcgi 的 Bug——这应该能改善对过载和崩溃的后端服务器的处理(你知道是哪个 :D)。

重要变更

  • 连接状态处理(管道化现在应该能正常工作)
  • FastCGI 修复: 改进了禁用时间处理,修复了活跃后端计数器中的 Bug。
  • TLS SNI 支持

下载

1.4.23 版本以来的变更

  • 为配置中的大整数添加 T_CONFIG_INT(#1966 所需)
  • 对 max_request_size 使用无符号整数 (unsigned int)(以及 T_CONFIG_INT)
  • 对 secdownload.timeout 使用无符号整数 (unsigned int)(修复了 #1966
  • 在 mod_status 中,在 keep-alive 状态下,保留连接中的 url/host 值以显示信息(修复了 #1202
  • 添加 server.breakagelog,一个“特殊”的 stderr(修复了 #1863
  • 修复 debug.log-timeouts 选项的配置评估(#1529
  • 为 mod_cgi 添加 “cgi.execute-x-only”,要求 CGI 脚本具有 +x 权限(修复了 #2013
  • 修复 FD_SETSIZE 比较警告
  • 为 Lua 在 pkg-config 搜索名称中添加 “lua-5.1”
  • 修复 mod_webdav 中未使用的函数 webdav_lockdiscovery
  • cmake: 修复 crypt 库检查
  • cmake: 将 -export-dynamic 添加到链接标志,修复了 FreeBSD 上的构建问题
  • 在 pipe-logger fork 之前,为绑定套接字设置 FD_CLOEXEC(修复了 #2026
  • 在 fastcgi/scgi 中 exec() 之前,将忽略的信号重置为 SIG_DFL(修复了 #2029
  • 仅当 “debug.log-request-header-on-error” 启用时,才显示 “no uri specified -> 400” 错误(修复了 #2030
  • 修复 mod_scgi 中挂起的连接(修复了 #2024
  • 在更多位置允许主机名中包含数字(修复了 #1148
  • 使用 connection_reset 而非 handle_request_done 进行清理回调
  • 将 mod_expire 修改为追加 Cache-Control 而不是覆盖它(修复了 #1997
  • 允许对 $SERVER[“socket”] 进行所有比较——仅对 “==” 进行绑定
  • 移除 strptime 失败消息(修复了 #2031
  • 修复通过 clang analyzer 发现的问题
  • 尝试修复使用本地化 svnversion 导致的 server.tag 问题
  • 修复网络写入返回值处理(#2024
  • 在 fastcgi 中,对所有错误后的禁用使用 disable-time,默认为 1 秒(修复了 #2040
  • 从 fastcgi 中移除自适应生成代码(已禁用很长时间)
  • 允许 mod_mysql_vhost 使用存储过程(修复了 #2011,感谢 Ben Brown)
  • 修复 mod_proxy 中的 IPv6 问题(修复了 #2043
  • 将 include_shell 的错误打印到 stderr
  • 在 mktime() 之前设置 tm.tm_isdst = 0(修复了 #2047
  • 如果可用,默认使用 linux-epoll(修复了 #2021,感谢 Olaf van der Spek)
  • 如果您在正则表达式模式中使用了过多的捕获,则打印错误(修复了 #2059
  • 如果 HTTP 头已由其他模块添加,则将 mod_expire 中的 Cache-Control 头值合并到现有 HTTP 头中(修复了 #2068
  • 将 keep-alive-idle 存储在单独的变量中(修复了 #1988
  • 修复头文件包含顺序,始终在任何系统头文件之前包含 “config.h”
  • mod_webdav: 用于跳过 Destination 字段域部分的登录信息的补丁(修复了 #1793
  • mod_webdav: 在更新 MOVE 的新属性之前删除旧属性(修复了 #1317
  • 从请求行中的绝对 URI 读取主机名(修复了 #1937
  • mod_fastcgi: 如果 disable-time 为 0,则不禁用后端(修复了 #1825
  • mod_compress: 匹配部分+完整 content-type(修复了 #1552
  • mod_fastcgi: 修复 is_local 检测,如果 bin-path 已设置,则重新生成后端(修复了 #897
  • 修复 linger-on-close 行为以避免罕见的失败条件(原为 r2636,修复了 #657
  • mod_fastcgi: 在本地进程终止后立即重启它们,修复本地进程处理
  • 修复因无效配置 “duplicate else conditions” 导致的段错误(修复了 #2065
  • mod_usertrack: 对 max-age 使用 T_CONFIG_INT,解决了范围问题(#1455
  • mod_accesslog: 可配置的时间戳日志记录(修复了 #1479
  • 始终定义 _GNU_SOURCE
  • 为 mod_magnet 添加一些迭代器(修复了 #1307
  • 修复 close_timeout_ts 触发器(应该最终修复悬挂关闭)
  • mod_rewrite: 添加 url.rewrite[repeat]if-not-file 用于在文件不存在或不是常规文件时进行重写(修复了 #985,感谢 lucas aerbeydt)
  • 添加 TLS 服务器名称指示 (SNI) 支持(修复了 #386,感谢 Peter Colberg <peter@colberg.org>)
  • 添加 SSL 客户端证书验证(#1288
  • mod_fastcgi: 修复 host->active_procs 计数器,如果连接尝试 5 次后仍不成功,则返回 503(修复了 #1825
  • mod_accesslog: 转义特殊字符(修复了 #1551,感谢 icy)
  • 修复由 #1793 导致的 mod_webdav 崩溃(修复了 #2084,感谢 hiroya)
  • 如果客户端不支持 TLS SNI,则不打印 SSL 错误
  • 修复悬挂关闭超时处理,将超时时间缩短至 5 秒(修复了 #2086
  • 修复 mod_fastcgi 中从 int 到 enum 的错误返回值