操作
发布信息¶
- 版本: 1.4.52
- 上一版本: 1.4.51
- 分支: 1.4
- 状态: 稳定版
- 发布目的: 错误修复
- 发布经理: gstrauss
- 发布日期: 2018-11-28
1.4.51版本的重要变更¶
性能增强,错误修复
未来计划的行为变更 (2019年第一季度)¶
从2019年第一季度开始,lighttpd的默认设置将进行调整,以对HTTP请求执行有限的URL规范化。
自lighttpd 1.4.50版本起,此URL规范化功能可通过 server.http-parseopts 提供,详情请参阅 <https://redmine.lighttpd.ac.cn/projects/lighttpd/wiki/Server_http-parseoptsDetails>。除非在lighttpd配置中明确设置了 server.http-parseopts,否则lighttpd的默认设置将变为 server.http-parseopts = ("url-normalize-unreserved" => "enable", "url-path-2f-decode" => "enable")。默认启用URL规范化将为 mod_redirect 和 mod_rewrite 提供更一致的行为,它们会匹配(URL编码的)URL请求。然而,默认解码 %2F 虽然通常有利于一致性,但对于那些在URL路径中编码URL并依赖字面量 '/' 作为分隔符的用户来说,这可能是一个破坏性变更。对于这些情况,需要在lighttpd配置中明确设置 "url-path-2f-decode" => "disable"。
https://redmine.lighttpd.ac.cn/projects/lighttpd/wiki/Server_http-parseoptsDetails
除非特定用途需要更宽松的设置,否则建议的 server.http-parseopts 设置如下:
server.http-parseopts = ( "header-strict" => "enable", "host-strict" => "enable", "host-normalize" => "enable", "url-normalize" => "enable", "url-normalize-unreserved" => "enable", "url-normalize-required" => "enable", "url-ctrls-reject" => "enable", "url-path-2f-decode" => "enable", "url-path-dotseg-remove" => "enable", "url-query-20-plus" => "enable" )
下载¶
- https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.52.tar.gz
- GPG 签名: https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.52.tar.gz.asc
- SHA256:
0f9de0227681c078f6b8c6154b581ced5fe7bcb5ff428ccf292581764b771145
- https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.52.tar.xz
- GPG 签名: https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.52.tar.xz.asc
- SHA256:
27bc0991c530b7c6335e6efff2181934d3c1a1c516f7401ea71d8302cefda764
- SHA256 校验和: https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.52.sha256sum
1.4.51版本变更¶
- [mysql] MySQL 8 弃用 my_bool
- [核心] 追踪中的拼写错误
- [构建] 修复不可移植的 test(1) 运算符
- [核心] 性能: 减少 connection_reset() 调用次数
- [核心] 性能: array_reset_data_strings()
- [核心] 性能: buffer_free_ptr() 属性冷
- [核心] 性能: 主机规范化单元素缓存
- [核心] 性能: buffer_copy_string_len()
- [核心] 性能: 跳过冗余的准备复制调用
- [核心] 性能: 如果对齐,则 buffer_align_size() 保持不变
- [核心] 性能: 调整写入缓冲区大小以便重用
- [核心] 性能: 直接将头部预置到写入队列
- [核心] 性能: 复制小字符串; 更好地重用缓冲区
- [核心] 性能: 复制小字符串; 扩展最后一个块
- [核心] 性能: 数组排序专用函数
- [核心] 性能: 直接将响应追加到写入队列
- [核心] 性能: 从后端读取时更好地重用缓冲区
- [核心] chunk.c 代码重用
- [多模块] 性能: 将头部写入后端写入队列
- [多模块] 性能: 大头部按2的幂分配
- [多模块] 性能: 使用更大的初始后端缓冲区
- [核心] 允许环境变量设置为空值
- [mod_fastcgi] 性能: 减少数据复制
- [mod_fastcgi] 性能: 减少数据复制
- [核心] 性能: chunk.c 块池
- [多模块] 性能: 重用带后端的大缓冲区
- [多模块] 更好地打包 struct chunk
- [核心] 性能: 内联 buffer_append_string_buffer()
- [核心] 稍微简化标志追加到字符串
- [mod_cgi] 性能: 重用缓冲区以创建 CGI 环境变量
- [mod_fastcgi,mod_scgi] 性能: 环境变量累积
- [核心] 不要使用 OpenSSL 1.1.x 调用 RAND_cleanup
- [mod_openssl] 将 SSL_shutdown() 移动到单独的函数
- [mod_openssl] 第二次 SSL_shutdown 前进行 SSL_read
- [mod_cgi] 性能: 为 CGI 处理程序使用 stat_cache
- [mod_openssl] 优先使用 TLS_server_method()
- [mod_webdav] 如果文件应存在,则返回 403
- [核心] 性能: chunkqueue 缓冲区已扩容
- [核心] 性能: 更简单的 buffer_string_space()
- [多模块] 动态处理程序提示后端头部大小
- [核心] 使用 chunk_buf_sz 而非硬编码数字
- [多模块] 性能: 简化 chunkqueue_get_memory()
- [mod_wstunnel] 性能: 重用大缓冲区
- [mod_cgi] 性能: 启动时缓存 getenv() 结果
- [核心] 修复 301 -> 302 使用 Location 覆盖问题 (修复 #2918)
- [核心] 修复先前重置的头部设置问题 (修复 #2919)
- [mod_webdav] 消除 Coverity 误报
- [核心] server.compat-module-load = "disable"
- [核心] server.chunkqueue-chunk-sz = 4096
- [核心] 性能: 更简单的 buffer_string_space() (已修复)
- [核心] 性能: 更快的 HTTP 流水线请求
- [核心] 性能: 更简单的 buffer_string_space() (测试)
- [mod_cgi] 内部重定向时重置重用缓冲区
- [核心] 释放时清除块缓冲区
- [mod_fastcgi] 小改进: 复制数据包时不带填充
- [mod_redirect,mod_rewrite] 使用 server_name
- [mod_fastcgi] 传输块减去数据包填充
- [核心] 分离函数以重置 FILE_CHUNK
- [核心] 性能: 简单、快速的 buffer_clear()
- [核心] 性能: CGI 变量编码的小改进
- [核心] 性能: buffer_string_space 小改进
- [核心] 更简单的物理路径连接
- [mod_webdav] 修复在不正确 URI 路径上的 LOCK
- [mod_webdav] COPY,MOVE 少一次缓冲区复制
- [核心] 性能: 简化 buffer_move()
- [mod_cml] 解析查询字符串而不修改它
- [核心] 性能: 缓冲区优化
- [mod_wstunnel] 使用 buffer_string_length()
- [核心] 性能: 内联 buffer_copy_buffer()
- [核心] cygwin 的 getcwd 辅助函数
- [核心] 在 NSSM 下运行 lighttpd 的 cygwin 示例
- [核心] 限制 con->uri.authority 小于 1024 字节
- [mod_webdav] 为每个请求方法分离函数
- [核心] 拒绝没有前导 '/' 的已解码 URL 路径
- [多模块] 验证 URL 解码路径中的 UTF-8
- [mod_proxy] 消除 Coverity 误报
- [核心] 修复拼写错误
- [核心] buffer_append_path_len()
- [核心] 如果模块未加载,则消除 indexfile 警告