主控安装
说明
Cdnfly 分为主控和节点 Agent 程序两大部分。主控主要安装主控程序、MariaDB 和 Elasticsearch。
在安装之前,请先到官网 http://www.cdnfly.com 购买授权,并设置主控 IP。主控安装完成后,请继续按照节点安装部署至少一个节点。
服务器配置要求
- 内存:由于主控安装有 Elasticsearch,推荐 16 GB 及以上。如果网站访问量较小,8 GB 也可以,最低 4 GB。
- 硬盘:建议使用固态硬盘。考虑到访问日志占用的空间,推荐 100 GB 及以上;访问量较小时可按需配置。
- CPU:至少 2 核。
- 端口:开放 80、9200 端口和安装完成后显示的主控通讯端口。
系统要求
主控和节点使用相同的系统准入条件。安装器不再按 Linux 发行版名称或版本号设置白名单,最终以服务器实际运行环境的检测结果为准。
| 项目 | 最低要求 |
|---|---|
| 操作系统 | Linux |
| 处理器架构 | x86_64(amd64) |
| Linux 内核 | 3.2 或更高版本 |
| C 标准库 | glibc 2.17 或更高版本 |
| 服务管理 | systemd |
| 安装权限 | root |
| 依赖安装 | APT(apt-get + dpkg)或 RPM(dnf/yum + rpm)体系 |
常见满足基础版本条件的发行版包括 Ubuntu 16.04/20.04/22.04/24.04、Debian 9/10/11/12/13、CentOS 7,以及 Rocky Linux、AlmaLinux、RHEL 8/9。以上仅为参考示例,是否能够安装仍以安装器检查结果、系统组件和软件源可用性为准。
CentOS 7 自带的 glibc 版本通常为 2.17,满足最低要求,支持安装。Alpine Linux 等使用 musl libc 的系统仍不支持。
安装前可以执行以下命令检查运行环境:
uname -s
uname -m
uname -r
getconf GNU_LIBC_VERSION
systemctl --version
安装主控
有两种安装方法:脚本一键安装和在宝塔环境下安装。
方法一:在干净系统环境下安装
如果系统没有安装 MySQL、Nginx 等软件,可以执行以下命令一键安装。
命令中的 /home/es 为 Elasticsearch 数据目录。如果服务器挂载了其他分区,请改为相应分区的目录。例如,分区挂载在 /data 时,请改为 /data/es。
curl -fL -m 30 https://dl2.lotcdn.com/cdnfly/master_v6.sh -o master_v6.sh || curl -fL -m 30 https://us.lotcdn.com/cdnfly/master_v6.sh -o master_v6.sh;
chmod +x master_v6.sh;
./master_v6.sh --es-dir /home/es;
master_v6.sh 会自动获取当前可安装的 V6 最新版本,下载并校验对应发布包后执行包内安装器。如需安装指定版本,可在安装参数中增加 --ver v6.0.0。安装器未正确识别主控对外 IP 时,可增加 --master-ip 指定(该 IP 同时用于本机数据库授权)。
方法二:在宝塔环境下安装
1. 安装宝塔
if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec
2. 安装 LNMP 环境
3. 设置 MySQL root 密码
4. 创建网站
根目录:/opt/cdnfly-go/panel/(该目录目前还不存在,需要等到执行完第 6 步的命令后才会生成)。创建后请记录数据库用户名及密码。
5. 开放主控通讯端口和 Elasticsearch 的 9200 端口
点击左侧菜单“安全”→“添加端口规则”,放行主控通讯端口和 9200 端口:
6. 安装 Cdnfly 主控程序
登录主控服务器,替换命令前三行中的数据库信息,然后执行命令:
mysql_db="这里替换为数据库名";
mysql_user="这里替换为数据库用户名";
mysql_pass="这里替换为数据库密码";
curl -fL -m 30 https://dl2.lotcdn.com/cdnfly/master_v6.sh -o master_v6.sh || curl -fL -m 30 https://us.lotcdn.com/cdnfly/master_v6.sh -o master_v6.sh;
chmod +x master_v6.sh;
./master_v6.sh --es-dir /home/es --no-mysql --mysql-ip 127.0.0.1 --mysql-db $mysql_db --mysql-user $mysql_user --mysql-pass $mysql_pass --mysql-port 3306 --with-bt;
7. 修改配置文件
增加以下配置(注意:此配置应放在 access_log 行前面):
location / {
try_files $uri @cdnfly;
}
location @cdnfly {
proxy_pass http://127.0.0.1:88888;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
请将上面的 88888 改为安装完成后显示的主控通讯端口。
注意:使用外部 MySQL/MariaDB 且数据库非空时,安装器会停止并提示;确认要删除并重建该数据库时,在安装命令中增加 --force-db-reinit。
8. 安装完成
主控登录地址为 http://主控IP/ 或 http://主控域名/。
- 管理员账号和密码:
admin/cdnfly - 普通用户账号和密码:
jason/cdnfly
卸载主控
请使用 root 用户在主控服务器上执行。脚本不会二次确认,执行前请先完成数据库、证书和配置备份。
先下载 V6 主控卸载脚本:
cd /tmp
curl -fL -m 30 https://dl2.lotcdn.com/cdnfly/master_uninstall_v6.sh -o master_uninstall_v6.sh \
|| curl -fL -m 30 https://us.lotcdn.com/cdnfly/master_uninstall_v6.sh -o master_uninstall_v6.sh \
|| exit 1
chmod 700 master_uninstall_v6.sh
默认卸载仅删除 CDNFly Go V6 主控服务、程序、日志和安装残留,保留 MariaDB、Elasticsearch、系统软件包及共享系统参数:
./master_uninstall_v6.sh
如果确定不再使用该主控,并需要同时彻底删除主控使用的本机 MariaDB 和 Elasticsearch(包含软件包、配置、日志和全部数据),可执行:
./master_uninstall_v6.sh --purge
--purge 会根据当前主控配置判断组件是否为本机回环地址,外部数据库或 Elasticsearch 不会被处理。该参数必须在 /opt/cdnfly-go/conf/config.yaml 仍存在时首次执行;不要先执行默认卸载再尝试补做 --purge。
主控特别安装
只安装 Elasticsearch
curl -fL -m 30 https://dl2.lotcdn.com/cdnfly/master_v6.sh -o master_v6.sh || curl -fL -m 30 https://us.lotcdn.com/cdnfly/master_v6.sh -o master_v6.sh;
chmod +x master_v6.sh;
./master_v6.sh --only-es --es-dir /home/es;
安装主控,但不安装 Elasticsearch
curl -fL -m 30 https://dl2.lotcdn.com/cdnfly/master_v6.sh -o master_v6.sh || curl -fL -m 30 https://us.lotcdn.com/cdnfly/master_v6.sh -o master_v6.sh;
chmod +x master_v6.sh;
./master_v6.sh --no-es --es-ip 1.1.1.1 --es-pwd xxx;
其中 1.1.1.1 为 Elasticsearch 服务器 IP,xxx 为 Elasticsearch 密码。