可供个人自建 CDN 的程序不多,goedge 是其中比较完善的一套程序,用起来很方便,今天就来介绍如何利用 goedge 快速建立自己的 CDN 系统
goedge 的开源地址如下:
1. 安装 MySQL8
goedge 是要使用数据库的,官方提供了一键安装 MySQL8 的脚本,BUT 我用那个脚本没有安装成功过,所以就自己动手安装。为了不会出现问题,我们就与官方保持一致,使用 MySQL8
1.1 程序安装
以 Debian 为例,首先去官网下载 apt 存储库,注意这里务必去官网下载最新的,否则可能无法使用。
|
wget https://dev.mysql.com/get/mysql-apt-config_0.8.26–1_all.deb |
下载完成后安装
|
apt install ./mysql-apt-config_*_all.deb |
安装时会看到
![图片[1]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64be40fb76956.webp)
确认即可,紧接着会看到
![图片[2]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64be40fcc696f.webp)
选择到 OK,确认即可
现在开始安装 MySQL
|
apt update && apt install mysql-server -y |
安装时会要求设定 root 密码
![图片[3]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64be41071baa5.webp)
确认 root 密码
![图片[4]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64be410209d29.webp)
选择密码认证
![图片[5]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64be4112d3e00.webp)
保持默认即可
开启开机自启动
|
systemctl enable –now mysql |
检查运行状态
|
systemctl status mysql |
为了安全,要采取一些保护
|
sudo mysql_secure_installation |
会出现一些安全选项,按照需求设定就行了
1.2 创建用户及数据库
首先添加一个新用户
|
CREATE USER ‘YOUR_USERNAME’@‘localhost’ IDENTIFIED BY ‘YOUR_PWD’; |
然后创建一个新数据库
|
CREATE DATABASE YOUR_DATABASE; |
最后给该用户授予操作该数据库的权限
|
GRANT ALL PRIVILEGES ON YOUR_DATABASE.* TO ‘YOUR_USERNAME’@‘localhost’; |
刷新一下权限,使更改生效
|
FLUSH PRIVILEGES; |
2. 安装 goedge
推荐使用官方提供的一键脚本安装
|
sudo sh -c “$(wget https://goedge.cn/install.sh -O -)” |
安装完成后,在浏览器中输入 http://IP:7788 就可以打开管理面板开始安装
![图片[6]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64be4c776807e.webp)
选择开始
![图片[7]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64be4c79178c0.webp)
保持默认即可
输入你的数据库连接信息
![图片[8]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64be4c7b47ac8.webp)
最后设置你的管理员账号,完工
面板首页
![图片[9]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc840be41.webp)
3. CDN 基本配置
3.1 面板基本设置
现在先不要着急添加节点,我们先去做一些基本的设置
首先去开启更新检查
![图片[10]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc85e16cf.webp)
你只需要:
- 勾选上
自动检查
即可
然后去禁止搜索引擎,爬虫等访问
![图片[11]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc836001a.webp)
现在需要:
- 勾选上
禁止搜索引擎
- 勾选上
禁止爬虫
- 勾选上
检查客户端指纹
- 添加
允许访问的域名
(可选,但十分建议)
假设你使用 your.domain
作为允许访问的域名,那么现在需要通过 http://your.domain:7788 访问面板
为了让 CDN 能够自动为我们申请证书并续签,我们还需要一些配置,稍后再回来开启面板 https
3.2 添加 DNS 服务商
首先添加域名解析服务商,进入 域名解析
-> DNS服务商
![图片[12]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc894ef95.webp)
点击左上角的 添加DNS账号信息
,根据提示填入相应信息
添加后,点击同步来获取当前的解析信息
3.3 配置 SSL 证书申请
现在添加证书申请服务商,进入 网站列表
-> 证书管理
-> 服务商账号
![图片[13]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc8d9e4d1.webp)
点击左上角的 创建账号
![图片[14]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc8cc81b5.webp)
以 zerossl 为例,填入你的 API 信息
接着创建 ACME 用户,进入网站列表
-> 证书管理
-> 申请证书
-> ACME用户
![图片[15]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc9397cc7.webp)
点击左上角的 创建用户
![图片[16]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc911afb0.webp)
现在可以先为面板签发一个证书
![图片[17]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc9259860.webp)
注意认证方式选择 使用DNS认证
![图片[18]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc963c23b.webp)
选择好 选择服务商
和 选择ACME用户
两项
![图片[19]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64bdf4107ac72.webp)
填写要申请证书的域名
申请完成后,为面板开启 https,进入 系统设置
-> Web服务
![图片[20]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc9a785df.webp)
现在
- 勾选
启用HTTPS
- 点击
选择已有证书
,选上你刚申请的证书
保存后
![图片[21]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc9fcada0.webp)
按照提示,现在需要重启管理面板才能生效
在 SSH 中进入软件目录
|
cd /$EdgeAdmin安装目录/bin |
例如我安装时的默认路径
|
cd /usr/local/goedge/edge-admin/bin |
执行
|
edge-admin restart |
重启后,使用 https://your.domain 访问即可,其中 your.domain
是你所绑定的域名
现在可以关闭 http 访问,只允许 https 访问
修改后同样需要重启面板生效
4. 添加集群及节点
4.1 创建集群
程序默认包含一个默认集群
![图片[22]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdc9f7019c.webp)
我们也可以自己创建集群,进入 边缘节点
-> 集群
点击左上角的创建集群
![图片[23]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64bdf374822d6.webp)
集群创建完成后会看到
![图片[24]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdca4701f5.webp)
正如图中所说,现在应该添加节点了
4.2 添加节点
现在连接到你想要添加的节点的 SSH,进行一些准备工作
安装一些必要的依赖
|
apt install -y iptables ipset firewalld nftables |
防火墙放行端口,其中 YOUR_SSH_PORT
是你的 SSH 端口
|
firewall-cmd –permanent –zone=public —add-port=YOUR_SSH_PORT/tcp |
|
firewall-cmd –permanent –zone=public —add-port=80/tcp |
|
firewall-cmd –permanent –zone=public —add-port=443/tcp |
|
firewall-cmd –reload |
创建一个 cdn 专用的账户,以 cdnuser
为例
|
sudo useradd -d /home/cdnuser -m cdnuser |
设置该用户的密码
|
sudo passwd cdnuser |
赋予该用户 sudo 权限
|
usermod -a -G sudo cdnuser |
更改时区
|
sudo timedatectl set-timezone Asia/Shanghai |
这里的时区必须与主控相同,否则安装时会报错
|
安装过程中发生错误:test failed: Process exited with status 127 |
更改系统名,其中 your.domain.name
是你目标更改的系统名,必须是域名格式
|
sudo hostnamectl set-hostname your.domain.name |
更改 hosts,其中 your.domain.name
是你目标更改的系统名
|
sudo nano /etc/hosts |
|
127.0.0.1 your.domain.name |
这点同样非常重要,不设置好安装就报错
设置好后,现在去添加连接节点的 ssh 信息,进入 边缘节点
-> 节点SSH
-> 创建认证
![图片[25]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/23/64bcdca556abe.webp)
填写完成后,开始添加节点,进入 边缘节点
-> 创建节点
![图片[26]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64bddff22b969.webp)
在 IP 地址栏,填写节点的 IP
![图片[27]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64bddfecb96c2.webp)
如果填写的 IP 就是用户访问你的节点的 IP,那就要勾选上 允许公开访问
其余信息按照实际填写即可,选择保存好的 ssh 认证
![图片[28]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64bded108d1fe.webp)
点击远程安装
如果安装失败,报什么没权限之类的错误之类的,再多装几次就好了
安装完成后,还可以进行一些自定义设置
比如设置 DNS 线路,让特定区域的用户访问到这个节点
![图片[29]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](http://img.beauty/i/2023/07/24/64bddffc47cf7.webp)
其余的设置可以自行研究,一般不需要更改
5. 添加网站
接下来就是最后一步了:添加目标网站,进入 网站列表
![图片[30]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64bddff5d6a14.webp)
点击左上角的 创建网站
![图片[31]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64bddffd0b4e5.webp)
选择 部署的集群
,添加 绑定的域名
,选择 HTTPS证书
,填写 源站地址
![图片[32]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64bddff3989f0.webp)
选择 源站协议
,填写 源站地址
即可
添加网站后,也有一些建议开启的自定义选项
进入 网站列表
-> 设置 DNS
![图片[33]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64bded0fb0ac4.webp)
关闭 支持任意域名CNAME
进入 网站列表
-> 设置
-> HTTP
![图片[34]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64bdea2025f49.webp)
勾选上 自动跳转到HTTPS
进入 网站列表
-> 设置
-> HTTPS
![图片[35]9哥博客-自建CDN推荐之goedge篇9哥博客-9哥博客](https://img.beauty/i/2023/07/24/64bdea25874ff.webp)
勾选 开启HSTS
和 OCSP Stapling
剩余的选项就可以自行研究了,按照需求调整
至此,专属于你的 CDN 就完成啦,将目标网站解析到这里,试试吧!
6. 后续维护
这个系统总体来说比较完善,大多数功能在面板里操作就够了,需要手动维护的主要是程序更新。
下载 edgeboot 用于管理
|
wget https://dl.goedge.cn/edge-boot/linux/amd64/edge-boot |
若要更新,执行
|
chmod u+x ./edge-boot #第一次运行时,需要修改此文件为可执行 |
|
./edge-boot upgrade admin |
暂无评论内容