Apache APISIX 3.5.0 正式发布
Apache APISIX 3.5.0 现已正式发布,此版本带来了一些新功能和改进的用户体验。包括在主机级别动态配置 TLS 版本、与 Chaitin WAF 的集成、强制删除资源、在独立模式下部署 APISIX 时在配置文件中使用环境变量等。此外,还包含了一些重要的变化。
重大变更
- 在 request-id 插件中移除雪花算法支持
移除 request-id 插件中的雪花算法支持。该算法引入了对 etcd 的不必要依赖,当 etcd 不可用时,可能会显著影响 APISIX 的性能。请考虑在算法中使用 uuid 选项。
有关更多背景信息,参阅邮件列表中的提案 。
相关 PR 见 #9715。
- 删除对 OpenResty 1.19 的支持
如果你当前正在使用此版本,建议计划升级到 OpenResty 版本 1.21 及更高版本。
相关 PR 见 #9913。
- 改善 L4 和 L7 代理的可用性并删除 apisix.stream_proxy.only
提高 L4 和 L7 代理的可用性。 此更改删除了 apisix.stream_proxy.only 选项,并简化了启用和禁用 L4 和 L7 代理的用法。
L4 和 L7 代理可在 config.yaml
文件中如下所示启用:
-
启用 L7 代理(默认启用):
apisix.proxy_mode: http
-
启用 L4 代理:
apisix.proxy_mode:stream
-
启用 L7 和 L4 代理:
apisix.proxy_mode: http&stream
有关更改后如何使用 stream 代理的更多信息,参阅如何启用 stream 代理。
相关 PR 见 #9607。
- 在 ua-restriction 插件中不允许同时使用 allowlist 和 denylist
在 ua-restriction 插件中,不再允许同时使用 allowlist 和 denylist。您应该只配置其中之一的选项。
相关 PR 见 #9841。
- 重构并改进 Admin API 中的插件接口
通过 /apisix/admin/plugins?all=true
获取所有插件属性的接口即将被弃用。 未来 Admin API 将仅支持一次获取一个插件的属性。建议你使用以下端点和参数来满足你的要求:
/apisix/admin/plugins/{plugin_name}?subsystem={subsystem}
或者,你可以使用 /v1/schema 获取并解析 Control API 中所有插件的架构。
如果你只想获取插件名称列表,可以使用以下命令:
/apisix/admin/plugins/list?subsystem={subsystem}
有关更多详细信息,请参阅管理 API 中的插件。
相关 PR 见 #9580。
新功能
- 支持主机级别动态配置TLS版本
支持运行时为各个 SNI 配置 TLS 版本。该配置优先于 config-default.yaml 或 config.yaml 中的 ssl_protocols 静态配置,并且不需要重新加载 APISIX,从而提供了一种更细粒度的方法来与你的基础设施集成。
例如,你可以使用以下命令将域 test.com 配置为接受 TLS 版本 1.2 和 1.3 的 TLS 连接:
curl http://127.0.0.1:9180/apisix/admin/ssls/1 -X PUT \ -H "X-API-KEY: ${ADMIN_API_KEY}" \ -d '{ "cert": "$cert", "key": "$key", "snis": ["test.com"], "ssl_protocols": [ "TLSv1.2", "TLSv1.3" ] }'
有关该功能和示例的更多信息,参阅 SSL 协议。
相关 PR 见 #9903。
- 支持强制删除资源
支持使用 Admin API 强制删除资源。 默认情况下,管理 API 检查资源之间的引用,并且不允许删除正在使用的资源。
借助此新功能,你可以通过发送带有 URL 参数 force=true 的 DELETE 请求来强制删除,如下所示:
curl "http://127.0.0.1:9180/apisix/admin/upstreams/1?force=true" -X DELETE \ -H "X-API-KEY: ${ADMIN_API_KEY}"
有关该功能和示例的更多信息,可参阅强制删除。
相关 PR 见 #9810。
- 支持 apisix.yaml 中的环境变量 支持在 apisix.yaml 中使用环境变量。
例如,你可以将上游服务的主机 IP 和端口设置为环境变量,并使用 apisix.yaml 中的变量,如下所示:
routes: - uri: "/test" upstream: nodes: "${{HOST_IP}}:${{PORT}}": 1 type: roundrobin #END
有关该功能和示例的更多信息,参阅管理 API 中的使用环境变量。
相关 PR 见 #9855。
- 在 Admin API 中添加架构验证端点
将 /apisix/admin/schema/validate/{resource} 端点添加到 Admin API 以验证配置的架构。你现在可以验证配置的正确性,而无需向端点发送资源创建请求。
例如,你可以使用以下命令验证路由的架构:
curl http://127.0.0.1:9180/apisix/admin/schema/validate/routes -i -X POST \ -H "X-API-KEY: ${ADMIN_API_KEY}" \ -d '{ "uri": 1980, "upstream": { "scheme": "https", "type": "roundrobin", "nodes": { "nghttp2.org": 1 } } }'
由于此架构不正确,你应该会看到类似于以下内容的响应:
HTTP/1.1 400 Bad Request ... {"error_msg":"property \"uri\" validation failed: wrong type: expected string, got number"}
有关该功能和示例的更多信息,参阅 Admin API 中的架构验证。
相关 PR 见 #10065。
- 通过 chaitin-waf 插件支持与 Chaitin WAF 集成
通过 chaitin-waf
插件支持与长亭 WAF 集成,将网关流量转发到长亭 WAF 进行恶意流量的检查和检测。
例如,你可以在插件元数据上配置长亭 WAF 的地址,所有 chaitin-waf
插件实例都会引用该地址。 配置 host
为长亭 SafeLine WAF 检测服务主机、unix 域套接字、IP 或域; 以及 port
,如下所示:
curl http://127.0.0.1:9180/apisix/admin/plugin_metadata/chaitin-waf -X PUT \ -H "X-API-KEY: ${ADMIN_API_KEY}" \ -d '{ "nodes":[ { "host": "unix:/path/to/safeline/resources/detector/snserver.sock", "port": 8000 } ] }'
然后,你可以在路由上启用该插件,并仅将符合指定条件的流量转发到 WAF:
curl http://127.0.0.1:9180/apisix/admin/routes/1 -X PUT \ -H "X-API-KEY: ${ADMIN_API_KEY}" \ -d '{ "uri": "/*", "plugins": { "chaitin-waf": { "match": [ { "vars": [ ["http_waf","==","true"] ] } ] } }, "upstream": { "type": "roundrobin", "nodes": { "httpbun.org:80": 1 } } }'
如果检测到潜在的恶意请求,例如以下请求,它会尝试注入攻击:
curl -i "http://127.0.0.1:9080/getid=1%20AND%201=1" \ -H "Host: httpbun.org" \ -H "waf: true"
应该看到类似于以下内容的响应:
HTTP/1.1 403 Forbidden ... X-APISIX-CHAITIN-WAF: yes X-APISIX-CHAITIN-WAF-TIME: 2 X-APISIX-CHAITIN-WAF-ACTION: reject X-APISIX-CHAITIN-WAF-STATUS: 403 ... {"code": 403, "success":false, "message": "blocked by Chaitin SafeLine Web Application Firewall", "event_id": "51a268653f2c4189bfa3ec66afbcb26d"}
有关该功能和示例的更多信息,可参阅 chaitin-waf 插件文档。
相关 PR 见 #9838。
其他更新
- 支持在 openid-connect 插件中配置代理服务器(PR #9948)
- 支持将响应标头从 OPA 服务器发送到 opa 插件中的上游服务 (PR #9710)
- 支持在 file-logger 插件中使用变量以允许条件日志记录(PR #9712)
- 支持 mocking 插件中响应头的配置(PR #9720)
详情可参见 CHANGELOG。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
V语言 (Vlang) 发布 0.4.1,安全快速可编译的静态语言
V语言 (Vlang) 0.4.1 已发布。主要变化集中在改进语言特性、解析器、标准库,以及编译器内部相关的变化等。 实现Enum.from_string(name string)将字符串转换为枚举值 禁止使用未初始化的函数指针 使用默认 expr 修复匿名结构 支持使用 const 作为枚举值 禁止将静态函数声明为方法接收者 (method receivers) 修复for i++; i<10; i++ { 详情查看 release notes。 V 是一个集合了 Go 的简单和 Rust 的安全特性的静态语言,作者表示 V 与 Go 非常相似,如果你了解 Go,那么就已经了解80% 的 V。V 在 Go 的基础上进行改进之处:https://vlang.io/compare#go。 V 主要特性 简单(作者声称可以在不到一小时内学习 V) 快速编译(编译器只有 400kb,而且无第三方依赖) 易于开发:V 在不到一秒钟的时间内完成编译 安全:没有 null、没有全局变量、没有未定义的值、边界检测、默认使用 Immutable 结构体 支持 C/C++ 转换 方便使用的交叉编译...
- 下一篇
AIdea - 支持大语言模型和会话的开源 APP 1.0.4 发布啦
AIdea 是一款集成了主流大语言模型以及绘图模型的 APP, 采用 Flutter 开发,代码完全开源,支持以下功能: 支持 GPT-3.5/4 问答聊天 支持国产模型:通义千问,文心一言 支持文生图、图生图、超分辨率、黑白图片上色等功能,集成 Stable Diffusion 模型,支持 SDXL 1.0 开源代码: 客户端:https://github.com/mylxsw/aidea 服务端:https://github.com/mylxsw/aidea-server (即将开放) 今天最新的1.0.4版本发布啦,大家快来体验体验! Github Release 地址:https://github.com/mylxsw/aidea/releases/tag/1.0.4 本次更新内容如下 解决 Mac 端应用图标过大问题,现在图标大小跟大部分 App 保持一致,圆角风格也做了统一 Bugfix: 首页 “历史纪录” 应该为 “历史记录” Bugfix: Web 端聊天界面 input 影响输入法的第一个字符 替换首屏加载中图标:增加加载中请稍候提示 Mac 端、Web 端现在已支...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题