# 更新日志(6.0.x)

本文件的格式基于如何维护更新日志 (opens new window), 并且本项目遵守语义化版本 (opens new window)

何为「不兼容的修改」?

  • 原有的配置文件可能无法使用,比如删除或者重命名了某个配置项。
  • 可能需要更新编译环境,比如安装新的依赖。

# [6.0.3] - 2021-08-02 UTC+0800

# 修复

  • 释放虚拟机资源时可能会引起段错误。

# [6.0.2] - 2021-08-01 UTC+0800

# 修复

  • 未能正确继承上层配置中的 URL 和 Referer 的白名单。

# [6.0.1] - 2021-07-30 UTC+0800

# 弃用

  • 弃用了 waf_cache 配置的 intervalpercent 参数,但并未将它们删除,只是它们不再有任何作用。这两个参数会在后续的某个版本删除。

# 变动

  • 提升了 CC 防护的性能。

# 修复


# [6.0.0] - 2021-07-21 UTC+0800

# 注意

  • 本次更新有一些不向下兼容的改动。

  • 高级规则的执行速度较慢,因为其原理是将规则编译成一系列指令,然后由虚拟机执行。

# 预构建模块

现在我们提供了提前编译好的模块,只要满足了下列要求即可使用。

  1. nginx 的版本必须是最新的 stable 或 mainline 版本。
  2. 您使用的 C 语言的标准库实现必须是 GNU 实现或者 musl 实现。

下载脚本会自动检查是否满足第二个条件。

您可以执行 assets/download.sh 来下载对应版本的模块并保存到当前目录。下面是用例。

# nginx-stable ngx_waf-stable
sh assets/download stable stable

# nginx-mainline ngx_waf-stable
sh assets/download mainline stable

# nginx-stable ngx_waf-beta
sh assets/download stable beta

# nginx-mainline ngx_waf-beta
sh assets/download mainline beta

每次更新都需要花费约一个半小时的时间来编译模块,所以推荐在更新超过两个小时后再下载更新后的模块,否则可能会下载到旧的模块。

# 从 5.x.x 升级到 6.x.x

  1. 在规则目录下新建一个名为 advanced 的空文件。
  2. 如果使用了配置项 waf_priority,可以将其删除或者按照文档中对该配置项的说明进行修改。

# 新增

  • 支持了高级规则,详情见文档。

# 移除

  • 移除 COMPAT 模式,不再完全兼容 ngx_http_rewrite_module

# 变动

  • 更新了配置项 waf_priority,详情见文档。

  • 现在你可以在 httpserverlocation 块中使用本模块的所有配置项。