透過 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
如果您有任何問題,請與我們聯絡。