通过 bundle 包降级 OpenResty Edge
注意
如果升级失败,可以执行以下步骤进行降级,在降级之前请先与 OpenResty 同事预约降级时间。1. 准备旧的 bundle 包
如果您没有名为 openresty-edge-bundle-VERSION.tar.gz
的旧 bundle 包,请使用您的电子邮件地址登录 OpenResty 下载中心 下载。
tar xf openresty-edge-bundle-VERSION.tar.gz
# 示例:tar xf openresty-edge-bundle-23.12.1-rhel-8.tar.gz
通常,bundle 包将包含以下文件或目录:
openresty-postgresql12
:包含 OpenResty Edge 数据库组件安装包的目录openresty-edge-admin
:包含 OpenResty Edge Admin 组件安装包的目录openresty-edge-node
:包含 OpenResty Edge Node 组件安装包的目录openresty-edge-log-server
:包含 OpenResty Edge Log Server 组件安装包的目录update-admin-db-VERSION.sh
,仅在升级时使用update-log-server-db-VERSION.sh
,仅在升级时使用init_admin_db_VERSION.sh
,仅在安装时使用init_log_server_db_VERSION.sh
,仅在安装时使用
2. 降级 Edge Admin
# 下载降级脚本
curl -O https://openresty.com/client/oredge/downgrade-edge-admin-bundle.sh
# 将脚本放置在旧的 Edge 管理端 bundle 包的目录中
cp downgrade-edge-admin-bundle.sh <old-packages-dir>
# 运行降级脚本
sudo bash downgrade-edge-admin-bundle.sh
# 检查
sudo rpm -qa | grep edge
# 或者
sudo dpkg -l | grep edge
3. 降级 Edge Admin 数据库
# 将脚本传输到 Edge 管理端数据库所在的机器
# 示例:bash downgrade-admin-db-217-180.sh
bash downgrade-admin-db-VERSION.sh
4. 重新编译
请按以下顺序重新编译应用程序:
- 首先重新编译一些不包含通配符域名且流量较少的应用程序
- 重新编译几个不包含通配符域名且流量较高的应用程序
- 重新编译所有包含通配符的应用程序
- 重新编译所有应用程序
- 重新编译全局规则
cd /usr/local/oredge-admin/
# 重新编译指定应用程序(将 APP-ID 替换为应用程序 ID)
sudo bash utils/recompile-apps.sh http APP-ID
# 重新编译所有应用程序
sudo bash utils/recompile-apps.sh wildcard-http
sudo bash utils/recompile-apps.sh http
sudo bash utils/recompile-apps.sh http_proxy
sudo bash utils/recompile-apps.sh socks5_proxy
# 重新编译全局配置
sudo bash utils/recompile-apps.sh global
# 重新编译 waf 规则
sudo bash utils/recompile-apps.sh waf
# 重新编译 DNS 应用程序
sudo bash utils/recompile-apps.sh dns
# 重新编译全局动作
sudo bash utils/recompile-apps.sh global-action
# 重新编译网关(可能会触发 OpenResty Edge Node 重载)
sudo bash utils/recompile-apps.sh gateway
如果整个系统正常运行,则降级完成!
当有许多 HTTP/HTTPS 应用程序时,这一步的编译可能需要更长时间。
sudo /bin/bash utils/recompile-apps.sh http
我们建议使用其他工具进行并发编译。以下命令将启动 4 个进程进行编译。
sudo /bin/bash utils/parallel-recompile.sh
如果速度还不够快,您还可以指定更大的并发数,但不超过 8,例如:
sudo /bin/bash utils/parallel-recompile.sh 8
5. 降级 Edge Node
首先降级 1~2
个 Edge 节点,确认没有问题后再降级所有 Edge 节点,请在降级过程中注意错误日志。
切断流量。如果您使用的是 Edge 的 DNS,请按照以下步骤操作;否则,请按照您认为合适的方式进行操作。
将您要降级的 Edge 节点下线。
- 进入 [网关集群]。
- [编辑] 该节点所在的集群。
- 修改节点的 [状态] 为 [禁用 DNS,禁用缓存集群]。
- [保存]
等待节点不再有流量。您可以通过检查访问日志来确认:
tail -f /usr/local/oredge-node/logs/access.log
此过程需要等待 DNS 过期,可能会耗费一些时间。
降级:
# 下载降级脚本 curl -O https://openresty.com/client/oredge/downgrade-edge-node-bundle.sh # 将脚本放置在旧的 Edge 节点 bundle 包的目录中 cp downgrade-edge-node-bundle.sh <old-packages-dir> # 运行降级脚本 sudo bash downgrade-edge-node-bundle.sh
6. 降级 Edge Log Server
# 下载降级脚本
curl -O https://openresty.com/client/oredge/downgrade-edge-log-server-bundle.sh
# 将脚本放置在旧的 Edge 日志服务器 bundle 包的目录中
cp downgrade-edge-log-server-bundle.sh <old-packages-dir>
# 运行降级脚本
sudo bash downgrade-edge-log-server-bundle.sh
7. 降级 Edge Log Server 数据库
# 将脚本传输到日志服务器数据库所在的机器
bash downgrade-log-server-db-VERSION.sh
# 示例:bash downgrade-log-server-db-49-41.sh
如果您有任何问题,请与我们联系。