记录一次安装GoEdge CDN v1.3.9 开心版的流程

之前测试过老版cdnfly,但只能在已被淘汰的centos7运行,并且内存占用高。goedge免费版很早之前也用过,当时没有人机验证不太方便,1.3.x版本添加了这个功能,弥补了对我来说最大的短板,现在的goedge在功能和性能上优于老版本cdnfly。再次部署体验一下。

至于为什么不使用最新版本,大概是这样:

https://hostloc.com/forum.php?mod=viewthread&tid=1329382

https://hostloc.com/forum.php?mod=viewthread&tid=1329455

1. 系统需求

1.1 管理平台系统需求

最小需求:

操作系统:Linux
包括并不限于CentOS、RHEL、Debian、Ubuntu、RockyLinux、AlpineLinux及其他各种发行版本
CPU不少于1核心
可用内存不少于1G
可用硬盘空间不小于10G

对于每日千万访问以上的CDN系统推荐配置如下:

CPU不少于8核心
可用内存不少于16G
可用硬盘空间不小于200G

1.2 边缘节点系统需求

单节点最低需求:

系统需求
操作系统:Linux
包括并不限于CentOS、RHEL、Debian、Ubuntu、RockyLinux、AlpineLinux及其他各种发行版本
CPU不少于1核心
可用内存不少于1G
可用硬盘不小于10G

当单节点日访问量超千万时建议配置:

CPU不少于8核心
可用内存不少于32G
硬盘使用SSD硬盘,且支持TRIM功能

其中:

使用SSD硬盘是提升缓存性能的关键
可以执行 fstrim -a 命令来检查SSD硬盘是否支持TRIM

2. 准备工作

在安装GoEdge之前,需要你做以下准备工作:

  • 安装一个或者使用现有的 MySQL 5.7.8/MySQL 8.0/MySQL 8.1/MySQL 8.2/TiDB 3.0 以上版本;如果你会一些Linux基本命令,但是不知道怎么安装MySQL,可以参考这里 安装MySQL;另外请注意:
    • 安装使用的MySQL用户密码不能为空
    • 当前只支持通过端口连接MySQL,不能使用Sock文件连接
  • 手动安装时,Linux服务器需要确认有 unzip 命令,用来解压压缩包,可以使用:unzip命令来确认这个命令是否可用,如果提示command not found,可以参考 安装unzip 一文来安装。

3. 安装管理平台

屏蔽官方域名

echo "127.0.0.1 goedge.cloud" | sudo tee -a /etc/hosts > /dev/null
echo "127.0.0.1 goedge.cn" | sudo tee -a /etc/hosts > /dev/null
echo "127.0.0.1 dl.goedge.cloud" | sudo tee -a /etc/hosts > /dev/null
echo "127.0.0.1 dl.goedge.cn" | sudo tee -a /etc/hosts > /dev/null
echo "127.0.0.1 global.dl.goedge.cloud" | sudo tee -a /etc/hosts > /dev/null
echo "127.0.0.1 global.dl.goedge.cn" | sudo tee -a /etc/hosts > /dev/null
cat /etc/hosts

创建目录

mkdir goedge
cd goedge

获取对应的程序包并解压

  • 国际源(Cloudflare)
# X86_64
wget https://static-file-global.353355.xyz/goedge/edge-admin-linux-amd64-plus-v1.3.9.zip

# aarch64
wget https://static-file-global.353355.xyz/goedge/edge-admin-linux-arm64-plus-v1.3.9.zip
  • 国内源(阿里云CDN)
# X86_64
wget https://fj.ly93.cc/37/1809553326/edge-admin-linux-amd64-plus-v1.3.9.zip

# aarch64
wget https://fj.ly93.cc/37/1809551208/edge-admin-linux-arm64-plus-v1.3.9.zip
unzip -o ./edge-admin-linux-amd64-plus-v1.3.9.zip

以上是fastoo大佬在https://www.nodeseek.com/post-139661-1提供的包,你也可以在这里查看DigitalVirt提供的备份,并校验md5 。

启动管理平台

cd edge-admin/
bin/edge-admin start

如果没有意外的话,服务就正常启动了,并提示类似于以下的信息:

Edge Admin started ok, pid: 109053

可以使用ps命令,来检查进程是否存在:

ps ax|grep edge

可以看到类似于以下的进程信息:

31643 ?        Sl     0:04 bin/edge-admin

就说明管理平台启动成功;可以在 logs/run.log 中查看启动的日志,方便我们诊断问题;
默认启动的端口是 7788,确认进程已经启动的时候,可以在浏览器上通过:

http://IP地址:7788/

访问管理平台;如果你的服务器上已经设置了防火墙,需要在防火墙设置 7788 这个端口是通过的;如果能正常访问上述网址的话,系统会自动进入安装过程,按照界面提示填写各项选项即可。安装系统服务

安装系统服务

在安装完成后可以使用:

cd $EdgeAdmin安装目录bin/edge-admin service

命令安装systemd系统服务,这样在系统重启后,可以自动启动服务。

完成安装

打开登录页面,按照提示完成安装。

图片[1]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

4. 激活及安全配置

4.1 激活

在 系统设置-商业版本-激活 输入激活码

旗舰激活码,可直接使用:

F4BuVYEKSnnWucg5IDVzUWRFEJDPkunFObYNtXSwrxSZaF890JYAJ6KKHJAnRHmyiy1xZcMm4N7/WzzHu5PpEY69VPoUGuKb7KoDgm2iU5ownHIbBMKDmhrN+xtNVO+fW0b4EoHtmqfFkTE3/j7W0CqF4gMb3EdW1U2QDPGxeJgP3PNjEHnBIDzisz7uEZVYfYehEfVcDHgEDcmWHAbcqr8jwMgzHFVtmleijnHcELAI48Y5PhGUQZywcBWhBG/nbdfKsqocX/R6XweaatDaQce4aQ8VwrRQAinSkydMAY3irjdv2XWZQW/yk9W1gl9msPXKZDnCjwFjtDLjq8Xf+LLjKFqFVeEMMHKQVrN+ccY6bbfe1tWLg+fQMqxUUgU5jz0T
F4BuVYEKSDWV+I13ISd5NUyBcWOlH0af4/ow9obzYBS3XvYC9IsK86k5UDyyBv9vqJWN2/FQTDbPyuAO0zxYlkLDC0c8rrShs+7PAkqM0O8wBIGknzForgidDZahky5Lo/ZWaPZ1dVFUxmV29ykb0I0b4tv7Q3OtnTylOuzf//MYrlvyw6VJQMGnsttmeHzsNL/r0yDONOEXZoGoLZsuBKnkfXt+qt6bZF+kM1ncbh+sY42BrPTWQ12sXqJS3qHlzU0FFl9lTNzLGYYhq5vi/4sJuPVE50/uLCtslTJdb9zOGR915hnM+jHYsR+jUk0QxOqtreaHpsvNuLkexXbkmA==

或者 使用网页生成器:

https://github.com/oswaldlow/keygen-python-webui

或者 更多方式可以查看:

https://www.nodeseek.com/post-138160-1

4.2 安全设置

基本安全
设置更复杂的密码:可以在”系统用户”菜单中修改管理员的密码,最好是数字、字母、字符的组合,长度应不低于6位;坚决不使用123456这样简单的密码;
修改服务端口:在”系统设置”–“Web服务”中把默认的7788端口改成其他端口,防止攻击者有针对性的扫描;
使用HTTPS:在”系统设置”–“Web服务”中使用HTTPS,关闭HTTP,当然你需要SSL证书;
限制允许访问的国家和地区:在”系统设置”–“安全设置”里设置”允许访问的国家和地区”、”允许访问的省份(中国)”;
限制允许访问的IP:如果你平时的登录IP是固定的,可以在”系统设置”–“安全设置”设置”允许访问的IP”;
修改产品名称:在”系统设置”–“管理界面设置”中修改产品名称,避免攻击者有针对性的攻击;
检查日志审计:日常检查日志,检查是否有非法尝试登录。
中级安全
设置OTP认证:在”系统用户”中可以启用OTP认证,启用后,在用户登录的时候需要同时填写OTP动态密码;
API节点使用HTTPS:在”高级设置”–“API节点”中GRPC可以使用HTTPS代替HTTP,防止通讯过程中被篡改数据;
日常对数据库进行备份,预防因攻击或者服务器故障等问题导致数据丢失。
高级安全
通过Firewalld/nftables/iptables等工具设置允许连接的IP;
通过云服务商安全策略设置允许连接的IP;
设置只能通过VPN内网访问。

另外,在 系统设置-基础设置-安全设置 绑定管理面板域名,设置只允许通过域名访问

图片[2]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

5. 安装边缘节点(CDN节点)

5.1 替换边缘节点包

cd ./goedge/edge-admin/edge-api/deploy
rm -rf *.zip

ps.这里你可能会细心的发现,还删除了两个dns节点包。第6节 安装智能DNS模块中还会提到,此时一并删除无需在意。

  • 国际源(Cloudflare)
wget -O edge-node-linux-amd64-v1.3.9.zip https://static-file-global.353355.xyz/goedge/edge-node-linux-amd64-plus-v1.3.9.zip
wget -O edge-node-linux-arm64-v1.3.9.zip https://static-file-global.353355.xyz/goedge/edge-node-linux-arm64-plus-v1.3.9.zip
  • 国内源(阿里云CDN)
wget -O edge-node-linux-amd64-v1.3.9.zip https://fj.ly93.cc/37/1809540483/edge-node-linux-amd64-plus-v1.3.9.zip
wget -O edge-node-linux-arm64-v1.3.9.zip https://fj.ly93.cc/37/1809540478/edge-node-linux-arm64-plus-v1.3.9.zip

上述包同样由fastoo提供,和安装主控时一样,你也可以下载dv提供的包,并验证md5 。

5.2 对边缘节点机器的配置

这里使用1h0.5g的小鸡进行测试,添加了1g swap。可以使用以下一键脚本,便捷开启bbr+fq并添加swap。脚本中添加swap时的单位为MB。

wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh

和安装管理平台时一样,屏蔽节点与官方域名间的通信。

echo "127.0.0.1 goedge.cloud" | sudo tee -a /etc/hosts > /dev/null
echo "127.0.0.1 goedge.cn" | sudo tee -a /etc/hosts > /dev/null
echo "127.0.0.1 dl.goedge.cloud" | sudo tee -a /etc/hosts > /dev/null
echo "127.0.0.1 dl.goedge.cn" | sudo tee -a /etc/hosts > /dev/null
echo "127.0.0.1 global.dl.goedge.cloud" | sudo tee -a /etc/hosts > /dev/null
echo "127.0.0.1 global.dl.goedge.cn" | sudo tee -a /etc/hosts > /dev/null
cat /etc/hosts

5.3 添加边缘节点

为了便捷测试,我选择ssh安装节点。由于上述流程已经替换过/deploy目录下的边缘节点包,故此处一键安装的边缘节点程序版本都是安全版本,无需担忧。

浏览器访问管理平台,依次选择 边缘节点-集群列表-默认集群-节点列表-创建节点 ,输入节点名称、节点ip、ssh地址、ssh端口。在SSH登录认证添加并选择新认证(账号密码或私钥)。

ps.所属分组和所属区域可以稍后添加。

图片[3]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

下一步,选择远程安装。安装完成:

图片[4]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

可以在单个集群的”集群节点”中查看节点的状态:

图片[5]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

正常情况下,状态应该为“运行中”。

5.4 安装nftables

GoEdge可以使用nftables有效拦截恶意IP访问。查看是否已安装:

nft --version

如果未安装,

在CentOS(5、6、7)下可以使用:

sudo yum -y install nftables

RedHat/CentOS 8/CentOS 9/RockyLinux9/Fedora下可以使用:

dnf -y install nftables

在Debian/Ubuntu下可以使用:

sudo apt install nftables

异常处理

如果安装后边缘节点有 Receive: netlink receive: no such file or directory 类似的提示,可以尝试重启 edge-node 进程(edge-node restart)。

图片[6]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

6. 安装智能DNS模块【非必要】

DNS模块用于更详细的分线路解析,为不同地区用户提供不同的节点配置方案,你也可以直接用dnspod或阿里云dns等实现分线路解析。如果你没有自建DNS的需求,请跳转至第7节。

如果你想自建DNS,可以按照此文流程操作:

7. 集群设置

7.1 开启健康检查

健康检查的原理是在API节点上通过访问边缘节点上的一个URL来读取响应数据。通过是否发生网络错误以及响应数据中的状态码来判断节点是否健康,然后执行对应的动作,比如上下线等。

在 边缘节点-集群列表-<你的集群>-集群设置-健康检查 中,开启健康检查。

图片[7]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

简单配置如上图,此时api节点每分钟访问边缘节点一次,连续3次检测到节点离线则下线节点。

7.2 集群域名设置

在”域名解析”菜单 – “DNS服务商”页面点击”[添加DNS账号信息]“:

多数情况下,你可以直接使用dnspod等dns服务商提供的服务。这里为了测试,我选用自建dns。另外,cloudflare等国外服务商不支持分国内运营商线路解析。

图片[8]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

同步数据

图片[9]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

7.3 设置集群dns

可以在”边缘节点” – “集群列表” – 集群”详情” – “集群设置” – “DNS设置”中修改集群的DNS设置: 这里可以选择我们添加的DNS服务商的域名:

图片[10]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

这里的:

  • 主域名 – 集群和节点的域名记录所属的主域名
  • DNS子域名 – 集群的独立的域名名称,各个集群之间的域名名称不能冲突

7.4 节点选择线路

在前3个步骤完成后,系统就会自动地同步域名解析记录,节点使用的都是默认线路。如果你想某个节点只为某个区域或者某个ISP服务时,可以为节点选择线路。

在节点”详情” – “修改设置” – “DNS”设置中可以为当前节点选择线路:

图片[11]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

单个节点可以添加多个线路;同样的,多个节点也可以添加同样的线路。

图片[12]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

7.5 诊断问题

可以在”域名解析”菜单 – 某个集群”详情”中,查看当前集群的域名解析问题,并根据提示进行修复。按流程操作应该不会出现问题。

图片[13]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

7.6 常见问题

为什么解析记录显示已解析,但是无法访问,或者无法通过ping等工具查看解析?

  1. 域名解析客户端(指我们使用的电脑、路由器、使用的解析服务)通常有缓存,所以不会立即生效,生效时间具有不确定性
  2. 你域名使用的DNS服务有缓存或者有生效时间,具体请咨询你使用的DNS服务提供商。

总结:解析记录生成后,如果无法生效,跟你的客户端和你域名使用的DNS服务有关,具有不确定性,GoEdge本身无法控制这些外部因素。

设置解析后,为什么我每次Ping域名都得到不一样的IP?

这个跟你域名使用的DNS服务有关,不同的服务商、不同的线路各自有不同的策略,具体请咨询你使用的DNS服务提供商。

8. 网站设置

8.1 创建网站

在 网站列表-创建网站。填空即可。

图片[14]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

8.2 解析域名

在域名 设置 可以查看cname值,主域名为第7节设置的testdomain.com

图片[15]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

将域名cname解析到605a84a3.testdomain.com

图片[16]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

访问test.thsink.com 发现已可以正常访问:

图片[17]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

8.3 配置自动申请证书

在 网站列表-证书管理 可以按提示创建自动续期证书任务

图片[18]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

9. 其他设置

9.1 WAF设置

防火墙规则太多,这里仅测试添加滑动验证。详细内容请查看https://goedge.cloud/docs/WAF/Enable.md

图片[19]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk
图片[20]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk
图片[21]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

9.2 缓存规则

https://goedge.cloud/docs/Server/Cache.md

9.3 消息通知

https://goedge.cloud/docs/Notifications/index.md

9.4 安装日志数据库节点

为了便于管理和清理,分离安装日志数据库,

可以添加多个日志数据库节点来分散服务访问日志的存储。

建议每500万访问量增加一个新的数据库节点。

MySQL版本需要不低于5.7.8或8.0、8.1、8.2,或者使用TiDB 3.0以上版本
MySQL连接账号需要有创建、删除数据表的权限
使用的数据库已经创建好,而且默认字符集为utf8mb4
MySQL主机地址需要能被所有的API节点所连接;必须 是能够通过局域网连接,否则数据无法稳定传输

在”系统设置”菜单 – “高级设置”菜单 – “日志数据库”中点击”添加节点”:

图片[22]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

填写完成后点击底部的”保存”按钮即可保存完成,如果成功的话,大约1分钟内会自动创建访问日志数据表,并开始写入数据。

10. 安装用户平台【自用非必要】

10.1 准备相关文件

在要安装用户节点的服务器下载用户节点文件并解压。

  • 国际源(Cloudflare)
# X86_64
wget https://static-file-global.353355.xyz/goedge/edge-user-linux-amd64-v1.3.9.zip

# aarch64
wget https://static-file-global.353355.xyz/goedge/edge-user-linux-arm64-v1.3.9.zip
  • 国内源(阿里云CDN)
# X86_64
wget https://fj.ly93.cc/37/1809540410/edge-user-linux-amd64-v1.3.9.zip

# aarch64
wget https://fj.ly93.cc/37/1809540413/edge-user-linux-arm64-v1.3.9.zip
unzip -o ./edge-user-linux-amd64-v1.3.9.zip

以上是fastoo大佬在https://www.nodeseek.com/post-139661-1提供的包,你也可以在这里查看DigitalVirt提供的备份,并校验md5 。

10.2 添加用户节点

登录管理员系统,在”系统设置” – “高级设置” – “用户节点”中点击”添加节点

图片[23]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

这里我把节点安装在管理平台同一服务器。如果你在其他服务器安装,记得和之前一样屏蔽与官方域名的通信。

创建完毕后点击「安装节点」,可以看到配置文件内容信息,在用户节点服务器创建配置文件并添加配置内容:

vim ./edge-user/configs/api_user.yaml

输入内容后按esc,输入:wq回车保存退出.

启动用户平台:

cd ./edge-user
bin/edge-user start

安装systemd系统服务

edge-user service

如果日志中没有异常,可以在浏览器上访问此节点,我反代了一下,设置了域名。

图片[24]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

10.3 注册设置

可以在”平台用户”菜单–“用户设置”菜单中修改用户注册相关设置:

图片[25]-记录一次安装GoEdge CDN v1.3.9 开心版的流程-THsInk

参考

https://goedge.cloud/docs/Admin/Install.md

https://www.nodeseek.com/post-139661-1

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!无需注册,过短或乱码评论会被屏蔽。
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容