项目

通用

个人资料

操作

发布信息

  • 版本: 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&gt;。除非在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" 
      )

下载

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 警告

外部参考

gstrauss6年多前 更新 · 1 次修订