操作
发布信息¶
- 版本:1.4.74
- 上一版本:1.4.73
- 分支:1.4
- 状态:稳定
- 发布目的:错误修复
- 发布经理:gstrauss
- 发布日期:2024-02-19
1.4.73版本的重要变更¶
- 错误修复,可移植性,扩展CI
下载¶
- https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.74.tar.gz
- GPG 签名:https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.74.tar.gz.asc
- SHA256:
3a82994d2afdd685c967569919cfa612dbb39bc1cc737d1b07dc4e988379ae57
- https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.74.tar.xz
- GPG 签名:https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.74.tar.xz.asc
- SHA256:
5c08736e83088f7e019797159f306e88ec729abe976dc98fb3bed71b9d3e53b5
- SHA256 校验和:https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.74.sha256sum
- SHA512 校验和:https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.74.sha512sum
行为变更¶
- 发送到syslog()的一些消息(如果在lighttpd配置中启用)已经
更改为使用不同的优先级(例如LOG\_WARNING, LOG\_DEBUG),而不是
所有消息都以LOG\_ERROR优先级发送。此更改仅影响
设置了server.errorlog-use-syslog = "enable"(非默认)的lighttpd配置。 - 在musl libc中使用sendfile();修复musl libc下sendfile()的构建检测
请报告任何问题,尽管由于以下原因,任何问题都是意料之外的:
如果sendfile()失败,lighttpd会回退到writev()。
未来计划的行为变更(针对下一个lighttpd版本)¶
- TLS密码默认值将逐步更新为更强的默认值
提议的默认值是前向保密并支持认证加密 (AEAD)
提议的默认值:openssl ciphers 'EECDH+AESGCM:CHACHA20:!PSK:!DHE'
当前默认值:openssl ciphers 'EECDH+AESGCM:AES256+EECDH:CHACHA20:!SHA1:!SHA256:!SHA384'
对于已使用lighttpd TLS默认值的lighttpd配置(以及受支持的客户端,即那些尚未达到生命周期结束的客户端),
预计影响很小或没有影响。
参考:https://developers.cloudflare.com/ssl/reference/cipher-suites/recommendations/ - mod_redirect:HTTP/1.1及更高版本的默认url.redirect-code将变更为
从301永久移动(Moved Permanently)到308永久重定向(Permanent Redirect)
(仅当lighttpd.conf中未显式设置url.redirect时)
RFC7538:https://datatracker.ietf.org/doc/html/rfc7538
(发布于近9年前)
未来计划的行为变更(2025年)¶
- lighttpd TLS默认值将更改为MinProtocol TLSv1.3
其他配置仍将受支持,但不会是默认值。
提议的默认值:MinProtocol TLSv1.3
当前默认值:MinProtocol TLSv1.2
1.4.73版本以来的变更¶
- [mod_h2] 如果后端响应头过大则发送500
- [mod_h2] h2_send_1xx() 小写字段名(修复#3233)
- [mod_dirlisting] 更小的函数用于生成列表
- [mod_dirlisting] dir-listing.sort 选项(#3235)
- [mod_dirlisting] 检查响应流bufmin
- [core] 如果已chroot,则时钟跳跃后跳过SIGUSR1
- [mod_deflate] 将bzip2移到优先级列表末尾
- [mod_deflate] deflate.allowed-encodings 默认值
- [core] cfg "if","elif","elsif","elseif","else if"
- [lemon] 将LEMON解析器更新到SQLite维护版本
- [core] 在配置解析错误跟踪中添加换行符
- [ls-hpack] sys/queue.h 可移植性
- [scons] 移除 -std=gnu99 以使用现代默认值
- [multiple] 共享升级代码:websocket
- [core] 在启动时更早检查SOCK_CLOEXEC
- [autotools] 报告IPv6支持是否禁用(修复#3237)
- [core] 更简单的错误页面头
- [mod_status] 更简单的状态页面头
- [h2] 更快地优雅关闭空闲h2服务器
- [mod_openssl] kTLS:检查内核tls卸载
- [mod_gnutls] kTLS:检查内核tls卸载
- [core] 更快地优雅关闭websockets服务器
- [build] 用于musl sendfile64()的-D_LARGEFILE64_SOURCE
- [mod_setenv] 代码一致性
- [mod_expire] 响应标签检查
- [mod_expire] 注释
- [core] 在FreeBSD上对sendfile()使用SF_NODISKIO
- [core] chunk_file_pread_chunk()
- [mod_deflate] 优先使用可重用缓冲区读取文件
- [core] 减少向网络发送文件时的阻塞I/O
- [core] 减少网络发送文件回退路径
- [core] 如果不使用sendfile()则尝试mmap()
- [mod_wolfssl] mod_wolfssl_write_err()
- [multiple] 扩展chunkqueue_peek_data()支持nowait
- [core] preadv2 RWF_NOWAIT EOPNOTSUPP 在tmpfs上(?!)
- [build] configure.ac sendfile探测中的类型错误(修复#3238)
- [core] 更新ls-hpack
- [ls-hpack] sys/queue.h STAILQ_FOREACH 可移植性
- [core] chunk.h 中的 chunk_open_file_chunk()
- [multiple] 使用 chunk_open_file_chunk()
- [core] 移除 chunkqueue_open_file_chunk()
- [core] 在可用时将sendfile()与iovecs一起使用
- [scons] 移除 CheckFunc() 不正确的头文件使用
- [core] network_write.c 注释中的拼写
- [cmake] 仅在Linux上检查sendfile64
- [core] 消除NDEBUG重新定义的编译器警告
- [autoconf] mbedtls的配置测试需要mbedx509
- [mod_h2] 当wr分配被使用时,将con添加到作业队列
- [mod_h2] 对磁盘I/O繁忙使用不同的标志
- [crypto] 对libressl使用evp api进行截断的sha-2
- [mod_expire] 更小的选项解析函数
- [mod_expire] 检查修改时间到当前时间
- [tests] t/test_mod_expire.c
- [tests] 将mod_expire测试添加到tests/request.t
- [core] syslog() 的日志跟踪带优先级(#3239)
- [core] 避免在宏内部使用预处理器
- [core] log_pri() 和 log_pri_multiline()(#3239)
- [build] 移除sendfile64的检查
- [tests] 测试退出时清理内存泄漏
- [build] 消除LEMON解析器中的编译器警告
- [core] 简化connection_handle_write()错误处理情况
- [core] gw_host_get 共享代码
- [doc] 更新 doc/config/conf.d/mime.conf
- [core] 合并 *BSD 0长度 FILE_CHUNK 的条件处理
- [meson] 可移植性改进
- [core] DragonflyBSD 可移植性
- [tests] 消除编译器警告
- [ci] 启用GitHub CI
- [ci] 调整 .github/workflows/meson.yml
- [ci] 消除 msys-clang32 stdcall 编译器警告
- [ci] 在Solaris上 #undef _XOPEN_SOURCE
- [core] 修复最近Solaris的拼写错误;编译失败
- [ci] _WIN32 可移植性
- [cmake,meson] 在原生Windows下跳过 tests/*
- [tests] 支持没有 cp -n 的平台
- [ci] cmake 未在 x86 _WIN32 上检测到 inet_pton
- [ci] 使用最新GCC和clang
- [ci] 调整 .github/workflows/meson.yml
- [ci] 进一步简化
- [ci] 调整 NetBSD,OpenBSD 测试 .github/workflows
- [ci] 将 Windows-VisualStudio 添加到 .github/workflows
- [ci] 将 Solaris (禁用) 添加到 .github/workflows
- [ci] 将 Windows-MSYS2 添加到 .github/workflows
- [ci] 将 .github/workflows/meson.yml 重命名为 pr.yml
- [tests] 调整 tests/prepare.sh 中的 shell 语法
- [tests] 静态构建的 test_mod 存根函数
- [ci] 调整 .github/workflows 中的 Windows 测试
- [mod_authn_dbi,mod_vhostdb_dbi] 检查 <dbi.h>
- [ci] 为 FreeBSD 定制 scripts/ci-build.sh
- [ci] 在 .github/workflows 运行命令中使用 set -e
- [debug] 所有超时日志记录使用 debug.log-timeouts
- [debug] 使用 log_debug_multiline()(#3239)
- [debug] 使用 log_debug() 而不是 log_error()(#3239)
- [multiple] 配置警告使用 log_warn()(#3239)
- [core] 使用 log_warn(),log_notice(),log_info()(修复#3239)
- [ls-hpack] 兼容包含 <sys/queue.h>
- [tests] 如果zlib不可用则跳过deflate测试
- [core] 忽略 <sys/cdefs.h> 的 cc -Wcpp 警告
- [ci] 在 ci-build.sh 中禁用 wolfssl 的机制
- [ci] 使用 Alpine Linux 虚拟机测试额外的架构
- [ci] 在Windows上跳过32位构建;节省资源
- [tests] 在s390x上跳过测试中的 shutdown(SHUT_WR)
- [ci] 添加 s390x 架构
- [meson] 替换已弃用的 meson.build_root() 使用
- [ci] 在ubuntu上进行 x86_64 和 x86 功能丰富的构建
- [ci] 在ubuntu上添加 x86_64 cmake ASAN 构建
- [ci] ci-build.sh 添加一些 NO_* 选项
- [ci] 添加 Windows-Cygwin 构建
- [ci] 如果 x86 构建在 alpine 上失败则快速失败
- [ci] 减少一些构建同时保持覆盖率
- [ci] 移除未实际运行 x86 ubuntu 的配置
- [ci] macOS上更功能丰富的构建
- [doc] cert-staple.sh 检查OCSP装订是否比证书新
- [ci] pr.yml 格式一致性
- [tests] 移除 prepare.sh cp 中重复的文件
- [wolfssl] 重命名 SSL_OP_NO_TICKET
- [ci] NetBSD上更功能丰富的构建
- [mod_authn_gssapi] ifndef GSS_KRB5_NT_PRINCIPAL_NAME
- [build] 在其他lua变体之前检查'lua54'
- [ci] OpenBSD CFLAGS LDFLAGS PKG_CONFIG_LIBDIR
- [ci] OpenBSD上更功能丰富的构建
- [ci] 在DragonflyBSD上使用bash而不是csh
- [ci] 在MSYS2下运行测试的特殊情况
- [ci] 在MSYS2下进行基本构建和运行测试
- [tests] 从 test_mod_expire 中移除多余注释
- [ci] ci-build.sh NO_DBI 选项
- [ci] ci-build.sh NO_UUID 选项
- [ci] ci-build.sh NO_GNUTLS 选项
- [ci] ci-build.sh NO_MYSQL 选项
- [core] _WIN32 将 PROT_WRITE 定义为 PAGE_READWRITE
- [mod_authn_sasl] 在 _WIN32 上使用 HOSTNAME 作为 fqdn
- [ci] MSYS2上更功能丰富的构建
- [mod_authn_sasl] 修复拼写错误
- [ci] 使用cygwin测试仓库获取最新包
- [ci] vmactions usesh: true
- [ci] 修复 MSVC 的 cmake 生成器路径
- [mod_wstunnel] 读取并丢弃 HTTP/1.1 请求体
- [core] 连接限制通知使用 log_notice()(#3239)
- [core] gw_upgrade_policy() 共享代码
- [mod_wstunnel] 处理大型内核套接字接收缓冲区
- [core] stat_cache.c 用错误代码替换断言
- [core] 移除 http_chunk_append_mem 中的开发断言
- [core] ck_static_assert()
- [core] 移除 gw_status_get_counter() 中的断言
- [core] configparser.y 合并断言,移除调试
- [core] 移除 sock_addr.c 中的断言
- [mod_fastcgi] 使用条件检查环境变量而不是断言
- [core] 共享代码 chunkqueue_close_tempchunk()
- [core] buffer.c 合并断言
- [core] 数组插入、替换需要非空
- [core] li_tohex*() 不再添加 '\0'
- [core] 在配置中接受 65536 作为 ushort 值
- [ci] 为 Cygwin 添加缺失的中间依赖项
- [core] 澄清配置文件解析注释
- [core] 修复 lighttpd.conf 语法无效导致的崩溃
- [core] lighttpd.conf 检测,如果连续字符串则报错
- [mod_magnet] lighty.r.req_body.unspecified_len
- [mod_proxy] 处理 HTTP/1.0 未指定请求长度
- [core] 如果从 HTTP/1.1 降级到 1.0 则取消设置 Upgrade
- [mod_magnet] 将 HTTP/1.1 降级到 1.0 的接口
- [mod_magnet] 扩展错误消息中的指导(#3240)
- [debug] 使用 log_debug() 而不是 log_error()(#3239)
- [mod_wstunnel] 使用 log_warn(),log_notice(),log_info()(#3239)
- [multiple] gw_backend_error_trace()(修复#1406)
- [mod_webdav] webdav_uuid_v4() 以取代 libuuid(#1056)
- [build] 移除 libuuid 依赖(修复#1056)
- [mod_wstunnel] 消除Coverity警告
- [doc] 修复 doc/config/lighttpd.conf 中的拼写错误
- [mod_h2] 如果后端响应头过大则发送502