安装 OpenResty Edge
1. 架构说明
OpenResty Edge 主要包含三个角色(OpenResty Edge Admin,OpenResty Edge Log Server, OpenResty Edge Node),三者的关系如下图:
OpenResty Edge Admin:简称 Edge Admin,用于控制管理 OpenResty Edge Node。
OpenResty Edge Log Server:简称 Log Server,用于指标,日志的存储和查看。
OpenResty Edge Node:简称 Edge Node,是具体的网关服务器,承载用户流量。
此外还包含两个数据存储角色:
OpenResty Edge Admin Database:简称 Edge Admin Database,是 Edge Admin 所使用的数据库,用于持久化 Edge Node 的配置。
OpenResty Edge Log Server Database:简称 Log Server Database,是 Log Server 所使用的数据库,用于持久化 Edge Node 的指标和日志数据。
2. 配置推荐
正式环境安装 OpenResty Edge 至少需要三台机器,分别安装 Edge Admin,Log Server 和 Edge Node 组件。
如果是测试环境,Edge Admin 和 Log Server 也可以安装在同一台机器上,以节省机器资源。
对于规模在 10 个节点以内的 OpenResty Edge 集群,我们推荐:
Edge Admin:至少使用 4 核处理器,16G 内存以及 200G SSD 硬盘的机器。
Log Server:至少使用 4 核处理器,16G 内存以及 200G SSD 硬盘的机器。
Edge Node:相对灵活,取决于业务量,大致是 1 个处理器核心搭配 2G 内存,越大越好。比如 8 核 16 GB 内存,200G 硬盘。
如果是超过 10 个节点的集群,需要根据实际场景升级配置,如果是更大规模的集群,还可以将 Edge Admin Database 和 Log Server Database 部署到单独的机器,如下图所示:
为了保证数据安全,我们建议按照数据库备份以及高可用这一章节进行配置。
3. 安装流程
注意:安装前需要准备以下文件:
openresty-edge-VERSION.tar.gz
:OpenResty Edge 的配置及初始化数据。
该文件会在下载中心中提供,需要在 openresty.com 官网中注册账户,登录下载中心后下载。
这里 VERSION
为配置包的版本号,在后面的安装步骤中, VERSION
都需要替换成实际的版本号,如 openresty-edge-0.0.1-4.or.tar.gz
,版本号请以下载中心最新的文件为准。
3.1 设置防火墙白名单
Edge Admin,Edge Node, Log Server 所在机器都会访问以下公网地址,用于下载软件以及授权信息的同步,如果有网络出口防火墙,需要开启白名单允许访问这些地址:
openresty.com 443
openresty.org 443
pkg.openresty.com 443
api.openresty.com 443
3.2 OpenResty Edge Admin Database 安装
如果 Edge Admin 和 Edge Admin Database 分别部署在两台机器上,Edge Admin Database 所在机器还需要对 Edge Admin 开放 5432
端口。
3.2.1 安装
复制
openresty-edge-VERSION.tar.gz
压缩包到当前目录解压缩
tar -xvf openresty-edge-VERSION.tar.gz
运行安装器
cd openresty-edge-VERSION sudo /bin/bash openresty-edge-installer.sh
输入您要执行的操作
Install
[1] Install [2] Upgrade [3] Downgrade [4] Uninstall What would you like to do? 1 What you choose is: Install.
输入您要安装的版本 (可以从 变更日志 获取最新的版本信息)
Which version (like 22.12.1) would you like to install? 22.12.1
输入您要安装的组件
Edge Admin Database
[1] Edge Admin Database [2] Log Server Database [3] Edge Admin [4] Log Server [5] Edge Node Which component would you like to install? 1 What you choose is: Edge Admin Database.
如果成功,最后会有如下提示
Great! Init admin database successfully.
3.2.2 验证安装
可以通过以下命令来查看进程是否启动
ps aux | grep postgres
还可以检查 Edge Admin Database 的日志中是否有异常信息,日志目录为
/var/postgres12/data/pg_log
,可通过以下命令获取最新的日志内容sudo ls -rt /var/postgres12/data/pg_log/* | tail -n1 | xargs sudo tail -n 50
3.3 OpenResty Edge Admin 安装
Edge Admin 机器需要开放 443
和 12345
两个端口,443
端口用于访问 Edge Admin 管理后台,12345
端口用于与 Edge Node 组件通讯。
3.3.1 安装
操作步骤和前面类似,在安装时组件选择
Edge Admin
[1] Edge Admin Database [2] Log Server Database [3] Edge Admin [4] Log Server [5] Edge Node Which component would you like to install? 3 What you choose is: Edge Admin.
配置证书和私钥
此证书用于访问 Edge Admin 管理后台,配置此证书后可以使用域名的方式来访问 Edge Admin 管理后台。 证书可以通过 Let’s Encrypt,ZeroSSL 等 SSL 证书提供商处获取,也可以通过 openssl 工具来生成自签证书。 如果你还没有证书,则可以先跳过,此时使用的将是 OpenResty Edge 默认的自签证书,后面只能通过 IP 的方式进行访问管理后台。
[+] Do you want to configure ssl certificate and private key? [y/N] y [-] Please enter the path of ssl certificate file (like /etc/ssl/ssl.crt): /home/user/ssl/ssl.crt [-] Please enter the path of ssl key file (like /etc/ssl/ssl.key): /home/user/ssl/ssl.key
配置 Database 和 Log Server 地址:(如果 Database, Edge Admin, Log Server 复用同一个机器,可以直接使用默认配置)
[+] Do you want to configure admin database and log server address (/usr/local/oredge-admin/conf/config.ini)? [y/N] y [-] Please enter the address of admin database (if admin database and admin use the same machine, no need to input.): [-] Please enter the address of log server (if log server and admin use the same machine, no need to input.): 54.112.79.32
请确保当前服务器与所输入的 IP 是联通的。
如果成功,最后会有如下提示,包含了 Edge Admin 的登录密码。
Install Edge admin successfully! login username: admin , password: xxxxxxxxxxx .
3.3.2 验证安装
可以通过以下命令来查看进程是否启动:
ps aux | grep oredge-admin
还可以检查 Edge Admin 的日志中是否有异常信息,日志目录为
/usr/local/oredge-admin/logs
,可通过以下命令获取最新的日志内容sudo ls -rt /usr/local/oredge-admin/logs/error* | tail -n1 | xargs -i sudo tail -n 50
此时 Edge Admin 可以正常使用了,可以通过 https://your_domain/ 访问管理后台。
如果前面未配置证书,则使用的是我们提供的自签证书,只能通过 https://admin_ip/ 访问,还需要忽略浏览器的证书错误提示才能正常访问。
3.4 OpenResty Edge Log Server Database 安装
3.4.1 安装
操作步骤和前面类似,安装时组件选择
Log Server Database
[1] Edge Admin Database [2] Log Server Database [3] Edge Admin [4] Log Server [5] Edge Node Which component would you like to install? 2 What you choose is: Log Server Database.
如果成功,最后会有如下提示
Great! Init log server database successfully.
3.4.2 验证安装
可以通过以下命令来查看进程是否启动:
ps aux | grep postgres
还可以检查 Log Server Database 的日志中是否有异常信息,日志目录为
/var/postgres12/data/pg_log
,可通过以下命令获取最新的日志内容sudo ls -rt /var/postgres12/data/pg_log/* | tail -n1 | xargs sudo tail -n 50
3.5 OpenResty Edge Log Server 安装
Log Server 机器需要开放 12346
和 8089
两个端口,12346
端口用于与 Edge Node 端通讯,8089
用于与 Edge Admin 通讯。
3.5.1 安装
操作步骤和前面类似,安装时组件选择
Log Server
[1] Edge Admin Database [2] Log Server Database [3] Edge Admin [4] Log Server [5] Edge Node Which component would you like to install? 4 What you choose is: Log Server.
配置 Log Server Database 和 Edge Admin 地址:(如果 Log Server Database, Edge Admin, Log Server 复用同一个机器,可以直接使用默认配置)
[+] Do you want to configure database and admin address (/usr/local/oredge-log-server/conf/config.ini)? [y/N] y [-] Please enter the address of log server database (if log server database and log server use the same machine, no need to input.): [-] Please enter the address of admin (if admin and log server use the same machine, no need to input.): 45.121.32.78
请确保当前服务器与所输入的 IP 是联通的。
如果成功,最后会有如下提示
Install Edge Log Server successfully!
3.5.2 验证安装
可以通过以下命令来查看进程是否启动:
ps aux | grep oredge-log-server
还可以检查 Log Server 的日志中是否有异常信息,日志目录为
/usr/local/oredge-log-server/logs
,日志会按照日期轮转,可通过以下命令获取最新的日志内容sudo ls -rt /usr/local/oredge-log-server/logs/error* | tail -n1 | xargs -i sudo tail -n 50
3.6 OpenResty Edge Node 安装
3.6.1 安装
操作步骤和前面类似,安装时组件选择
Edge Node
[1] Edge Admin Database [2] Log Server Database [3] Edge Admin [4] Log Server [5] Edge Node Which component would you like to install? 5 What you choose is: Edge Node.
配置 Edge Admin 和 Log Server 地址:
[+] Do you want to configure admin and log server address (/usr/local/oredge-node/conf/config.ini)? [y/N] y [-] Please enter the address of admin: 54.212.32.78 [-] Please enter the address of log server: 54.212.32.78
请确保当前服务器与所输入的 IP 是联通的。
如果成功,最后会有如下提示
Install Edge Node successfully!
3.6.2 验证安装
可以通过以下命令来查看进程是否启动:
ps aux | grep oredge-node
还可以检查 Edge Node 的日志中是否有异常信息,日志目录为
/usr/local/oredge-node/logs
,可通过以下命令获取最新的日志内容sudo ls -rt /usr/local/oredge-node/logs/error* | tail -n1 | xargs -i sudo tail -n 50
如果日志中有以下输出,表明 Edge Node 已经成功连上 Edge Admin,在 Edge Admin 管理后台中批准节点加入即可正常使用。可以参考网关集群。
2021/11/16 14:37:38 [error] 6882#6882: *51983 [lua] privileged.lua:819: could not establish node identity: not yet approved, context: ngx.timer
至此全套的 OpenResty Edge 已经搭建完毕。
3.7 配置两份 OpenResty Edge Admin 服务(可选)
如果希望提高 Edge Admin 服务的可用性,可以考虑部署两份 Edge Admin 服务,配置为双主。 步骤是:
按照上面的步骤 3.3 再安装一套 Edge Admin 软件
修改 Edge Admin 配置
# 这个文件后续的升级也不会自动覆盖,请注意行首不要留空格 sudo vim /usr/local/oredge-admin/conf/config.ini
需要修改 clone_admin 下的 host 字段,每个 Edge Admin 配置另外一个 Edge Admin 服务的地址。
修改后重启 Edge Admin 服务。
sudo systemctl start upgrade-oredge-admin
此时两个 Edge Admin 服务是双主模式,访问任意一个 Edge Admin 都是一样的效果。
修改 Edge Node 配置
# 这个文件后续的升级也不会自动覆盖,请注意行首不要留空格 sudo vim /usr/local/oredge-node/conf/config.ini
修改配置文件
admin
段下的host2
字段,配置成另一个 Edge Admin 的地址。修改后重启 Edge Node 服务。
sudo systemctl start upgrade-oredge-node
Edge Node 会随机使用
host
和host2
(与配置顺序无关),并且当某一个 Edge Admin 宕机的时候,会自动切换到另外一个 Edge Admin 服务。
4. 自动化安装 OpenResty Edge
你也可以使用非交互式的安装方式来安装 OpenResty Edge。
示例 1:
sudo bash openresty-edge-installer.sh -a install -c node -v 22.12.1 -m 192.168.10.1 -l 192.168.10.2
安装 22.12.1 版本的 OpenResty Edge Node,并修改配置文件中 Edge Admin Host 和 Log Server Host 对应的配置。
示例 2:
sudo bash openresty-edge-installer.sh -a install -c admin -v 22.12.1 -d 192.168.10.3 -l 192.168.10.2 -s /tmp/cert.crt -k /tmp/key.crt
安装 22.12.1
版本的 OpenResty Edge Admin,修改配置文件中 Database Host 和 Log Server Host 对应的配置,并配置 Edge Admin 管理页面的 SSL 证书为 /tmp/cert.crt 和 /tmp/key.crt。
openresty-edge-installer.sh 当前支持以下参数:
-a, --action install, upgrade, downgrade, uninstall.
-c, --component admin, log-server, node, log-server-db, admin-db, rebuild, clean-db.
-v, --version 22.6.1 when upgrade, install, or uninstall, 22.6.1-1 when downgrade.
-p, --plus-version use in downgrade, examples: 1.19.3.1.36-1.
-d, --db-host specify database host, which can be used when installing admin and log server.
-m, --admin-host specify admin host, which can be used when installing node.
-s, --admin-ssl-cert-path: specify ssl cert path for admin console.
-k, --admin-ssl-key-path: specify ssl key path for admin console.
-i, --admin-ssl-skip skip configuration of admin ssl certificate.
-l, --log-server-host specify log server host, which can be used when installing node and admin.
--backup-db if exist, will backup db when upgrade admin db.
-h, --help help info.
5. 数据库备份以及高可用 (可选)
我们提供了两种方式(数据库备份,数据库高可用)来保证数据安全,在数据库损坏之后可以利用备份文件或者从库恢复数据。我们强烈建议两种方式都采用,最大限度保障数据安全。
6. 开始使用
7. 更多
有问题请与我们随时沟通!