配置遷移
當需要將原來部署在 Nginx/OpenResty 的業務遷移到 OpenResty Edge 時,就需要將原來的配置轉換為 OpenResty Edge 的配置。
OpenResty Edge 提供線上服務和離線的 CLI 工具。線上服務無需額外安裝任何軟體,而 CLI 轉換工具需要您安裝 openresty-nginx2edge-cli 軟體包。您可以根據你們的需要選擇對應的轉換方式。
使用線上轉換服務
登陸你們的 OpenResty-Edge-Admin 管理站點,選擇 tools 下的 Nginx.conf Migration Tool 進行轉換。
注意:需要使用在 openresty.com 註冊過的賬號並且開通了 ngx2edge 許可權才能使用線上轉換服務。
轉換完成後,選擇下載將轉好好的配置下載到本地。
使用離線 CLI 工具
安裝 openresty-nginx2edge-cli
openresty-nginx2edge-cli 存放在 OpenResty Edge 的倉庫,因此您需要具有訪問許可權的機器上安裝該軟體包。比如可以選擇在 OpenResty-Edge-Admin 或者 OpenResty-Edge-Node 所在的機器上進行安裝。您也可以選擇下載後安裝到其它的機器。
對於 CentOS, RHEL, Amazon Linux, Rocky Linux 系統
# install on the current machine
sudo yum install -y openresty-nginx2edge-cli
# download package only
yum download openresty-nginx2edge-cli
# cp the rpm package to another machine
# execute the following command
sudo yum install -y openresty-nginx2edge-cli*.rpm
對於 Fedora
# install on the current machine
sudo dnf install -y openresty-nginx2edge-cli
# download package only
dnf download openresty-nginx2edge-cli
# cp the rpm package to another machine
# execute the following command
sudo dnf install -y ./openresty-nginx2edge-cli*.rpm
對於 Ubuntu, Debian 系統
# install on the current machine
sudo apt-get -y install openresty-nginx2edge-cli
# download package only
apt-get download openresty-nginx2edge-cli
# cp the rpm package to another machine
# execute the following command
sudo apt-get install -y ./openresty-nginx2edge-cli*.rpm
執行配置轉換
配置轉換工具要求將原來的配置檔案壓縮為 tar.gz 格式的壓縮包。因此你需要將原來的配置壓縮為 nginx.tar.gz。如果你的配置檔案當中用到 include
指令並且是使用絕對路徑,那麼需要將配置轉換為相對路徑。
比如 /etc/nginx/nginx.conf
裡面有 include /etc/nginx/conf.d/example.com.conf;
。那麼需要將該指令轉換為 include conf.d/example.com.conf
;
完成配置檔案的準備工作後,你可以執行下面的命令來執行配置轉換。
/usr/local/orngx2edge-cli/ngx2edge ./nginx.tar.gz
比如,下面命令的執行結果最後一行顯示最終生成的包的路徑是 app-nginx-1013152554.tar.bz2.
$ /usr/local/orngx2edge-cli/ngx2edge /tmp/nginx.tar.gz
TODO: unsupported `root` directive in this location, not found settings of error page or favicon in server context at nginx.conf line 39.
TODO: unsupported `root` directive in this location, not found settings of error page or favicon in server context at nginx.conf line 61.
total App num: 2
done App num: 2
App dst: app-nginx-1013152554.tar.bz2
配置匯入 OpenResty-Edge-Admin
這裡假設你要匯入的配置檔案為 app-nginx-1013152554.tar.bz2.
安裝 python sdk
可以使用 pip 命令直接安裝
pip3 install openresty-edge-sdk
如果不能直接訪問外網,可以選擇在 https://pypi.org/project/openresty-edge-sdk/#files 下載。
匯入配置到 admin
如果你安裝了 openresty-nginx2edge-cli, 那麼可以使用如下的方式匯入到 admin。
export NGINX2EDGE_HOST='https://your.admin'
export NGINX2EDGE_USER='admin'
export NGINX2EDGE_PASSWORD='{your password}'
workdir=`date +%s`
rm -fr $workdir
mkdir -p $workdir
tar -xf -C $workdir ./app-nginx-1013152554.tar.bz2
tar -xf app-nginx-1013153306.tar.bz2 -C $workdir/
python3 /usr/local/orngx2edge-cli/utils/global_ini.py $workdir
python3 /usr/local/orngx2edge-cli/utils/create_apps.py $workdir/app
rm -fr $workdir
如果你沒有安裝 openresty-nginx2edge-cli, 那麼請下載 ngx2edge-import-utils. 下載完成後將工具解壓到當前目錄。
export NGINX2EDGE_HOST='https://your.admin'
export NGINX2EDGE_USER='admin'
export NGINX2EDGE_PASSWORD='{your password}'
if [ ! -d utils ]; then
echo "Please download ngx2edge-import-utils-xxx.tar.gz from https://openresty.com.cn/download/ first."
exit 1
fi
workdir=`date +%s`
rm -fr $workdir
mkdir -p $workdir
tar -xf -C $workdir ./app-nginx-1013152554.tar.bz2
tar -xf app-nginx-1013153306.tar.bz2 -C $workdir/
python3 ./utils/global_ini.py $workdir
python3 ./utils/create_apps.py $workdir/app
rm -fr $workdir
檢視配置
匯入完成後,請到您的 Openresty-Edge-Admin 管理介面進行檢視,確認匯入成功,並且匯入的配置是預期的。在匯入配置釋出後,需要進行測試,確保訪問的行為是符合預期的。