自建CDN推荐之goedge篇

可供个人自建CDN的程序不多,goedge是其中比较完善的一套程序,用起来很方便,今天就来介绍如何利用goedge快速建立自己的CDN系统

goedge的开源地址如下:

一、安装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

安装时会看到

确认即可,紧接着会看到

选择到OK,确认即可

现在开始安装MySQL

apt update && apt install mysql-server -y

安装时会要求设定root密码

确认root密码

选择密码认证

保持默认即可

开启开机自启动

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;

二、安装goedge

推荐使用官方提供的一键脚本安装

sudo sh -c "$(wget https://goedge.cn/install.sh -O -)"

安装完成后,在浏览器中输入 http://IP:7788 就可以打开管理面板开始安装

选择开始

保持默认即可

输入你的数据库连接信息

最后设置你的管理员账号,完工

面板首页

goedge主页

三、CDN基本配置

3.1 面板基本设置

现在先不要着急添加节点,我们先去做一些基本的设置

首先去开启更新检查

开启更新检查

你只需要:

  • 勾选上 自动检查

即可

非常建议开启自动检查,这样在有更新时就可以及时看到更新提示

然后去禁止搜索引擎,爬虫等访问

禁止爬虫访问

现在需要:

  • 勾选上 禁止搜索引擎
  • 勾选上 禁止爬虫
  • 勾选上 检查客户端指纹
  • 添加 允许访问的域名(可选,但十分建议)
十份建议添加允许访问的域名,这样可以使用域名访问并开启https,既安全又方便

假设你使用 your.domain 作为允许访问的域名,那么现在需要通过 http://your.domain:7788 访问面板

为了让CDN能够自动为我们申请证书并续签,我们还需要一些配置,稍后再回来开启面板https

3.2 添加DNS服务商

首先添加域名解析服务商,进入 域名解析 -> DNS服务商

添加DNS服务商

点击左上角的 添加DNS账号信息 ,根据提示填入相应信息

添加后,点击同步来获取当前的解析信息

务必要点击立即同步,后面才能正常使用DNS的分地域解析功能

3.3 配置SSL证书申请

现在添加证书申请服务商,进入 网站列表 -> 证书管理 -> 服务商账号

添加SSL服务商

点击左上角的 创建账号

以zerossl为例,填入你的API信息

接着创建ACME用户,进入网站列表 -> 证书管理 -> 申请证书 -> ACME用户

创建ACME用户

点击左上角的 创建用户

输入ACME用户信息

现在可以先为面板签发一个证书

新申请证书1

注意认证方式选择 使用DNS认证

新申请证书2

选择好 选择服务商选择ACME用户 两项

填写要申请证书的域名

申请完成后,为面板开启https,进入 系统设置 -> Web服务

开启HTTPS

现在

  • 勾选 启用HTTPS
  • 点击 选择已有证书,选上你刚申请的证书

保存后

HTTPS已开启

按照提示,现在需要重启管理面板才能生效

在SSH中进入软件目录

cd /$EdgeAdmin安装目录/bin

例如我安装时的默认路径

cd /usr/local/goedge/edge-admin/bin

执行

edge-admin restart

重启后,使用 https://your.domain 访问即可,其中 your.domain 是你所绑定的域名

现在可以关闭http访问,只允许https访问

修改后同样需要重启面板生效

四、添加集群及节点

4.1 创建集群

程序默认包含一个默认集群

默认集群

我们也可以自己创建集群,进入 边缘节点 -> 集群

点击左上角的创建集群

添加集群

集群创建完成后会看到

新创建的集群

正如图中所说,现在应该添加节点了

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 -> 创建认证

添加SSH认证

填写完成后,开始添加节点,进入 边缘节点 -> 创建节点

填加节点

在IP地址栏,填写节点的IP

添加节点IP

如果填写的IP就是用户访问你的节点的IP,那就要勾选上 允许公开访问

其余信息按照实际填写即可,选择保存好的ssh认证

远程安装准备

点击远程安装

如果安装失败,报什么没权限之类的错误之类的,再多装几次就好了

安装完成后,还可以进行一些自定义设置

比如设置DNS线路,让特定区域的用户访问到这个节点

其余的设置可以自行研究,一般不需要更改

五、添加网站

接下来就是最后一步了:添加目标网站,进入 网站列表

添加网站

点击左上角的 创建网站

添加网站

选择 部署的集群,添加 绑定的域名,选择 HTTPS证书,填写 源站地址

添加源站

选择 源站协议,填写 源站地址 即可

添加网站后,也有一些建议开启的自定义选项

进入 网站列表 -> 设置 DNS

关闭任意域名CNAME

关闭 支持任意域名CNAME

进入 网站列表 -> 设置 -> HTTP

开启强制https

勾选上 自动跳转到HTTPS

进入 网站列表 -> 设置 -> HTTPS

开启hsts

勾选 开启HSTSOCSP Stapling

剩余的选项就可以自行研究了,按照需求调整

至此,专属于你的CDN就完成啦,将目标网站解析到这里,试试吧!

六、后续维护

这个系统总体来说比较完善,大多数功能在面板里操作就够了,需要手动维护的主要是程序更新。

下载edgeboot用于管理

wget https://dl.goedge.cn/edge-boot/linux/amd64/edge-boot

若要更新,执行

chmod u+x ./edge-boot  #第一次运行时,需要修改此文件为可执行
./edge-boot upgrade admin
-=||=-收藏

评论

  1. Chaos
    1月前
    2023-8-27 9:18:56

    感谢分享,已经加入到官网https://goedge.cn/docs/Tutorials/Index.md

  2. 小白白
    1月前
    2023-8-29 22:47:21

    大佬出个宝塔面板的教程

    • 博主
      小白白
      4周前
      2023-9-03 15:11:30

      使用宝塔面板的反代作为CDN吗?如果是这种,我更建议Nginx Proxy Manager

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇