
GoEdge是一款用于管理分布式CDN边缘节点的开源工具软件,目的是让用户轻松地、低成本地创建CDN/WAF等应用。在圈内名气挺大的,支持x86、arm64两个平台,对系统的依赖性也不高,是用户除购买商业CDN服务之外,自建CDN的不错选择。

GoEdge分为免费的社区版和需要付费的商业版,商业版比社区版多了一些功能,比如边缘计算、HTTP/3、更详细的可访问性监控、5秒盾等,详细的差别可访问这里了解:GoEdge CDN专业版,但实话实说,社区版已经足够强大了。
GoEdge的安装,可以参考官方的教程,这里不做搬运和赘述,这里介绍另外一种方法,使用Docker快速部署GoEdge管理平台(包含API节点)和边缘节点。让我们开始吧!
部署前的准备工作
安装Docker
管理平台和边缘节点都需要先安装Docker,新版本的Docker已包含compose插件,因此我们只需要执行官方推荐的命令安装即可:
curl -sSL https://get.docker.com | sh
部署管理平台
首先编写docker-compose.yaml,因为将管理平台所依赖的mysql加进来,所以这里使用docker compose的方式进行,也是方便后期迁移等管理工作。
mysql的版本要求,官方建议使用mysql 8,最低不低于mysql 5.7.8,系统内存建议4GB以上。
首先进入你想存放docker-compose.yaml的路径,比如/opt/goedge,然后进入该路径后创建docker-compose.yaml,输入以下内容:
version: "3"
networks:
goedge:
external: false
services:
mysqld:
image: mysql:8
container_name: mysqld
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_USER=edges
- MYSQL_PASSWORD=edges
- MYSQL_DATABASE=edges
networks:
- goedge
volumes:
- ./data/db/mysql:/var/lib/mysql:rw
restart: always
edge-admin:
image: icodex/edge-admin:1.3.3
container_name: edge-admin
ports:
- 7788:7788/tcp
- 8001:8001/tcp
networks:
- goedge
volumes:
- ./data/edge-admin/configs:/usr/local/goedge/edge-admin/configs
- ./data/edge-api/configs:/usr/local/goedge/edge-admin/edge-api/configs
restart: always
以上使用了mysql 8的镜像,接着edge-admin是管理平台的镜像。确定没有端口冲突之后,执行命令启动:
docker compose up -d
运行后,打开浏览器,输入服务器IP地址和7788端口号,进入安装界面:

注意⚠️!因为这里的网络类型是容器内共享的,因此在数据库信息填写这里,数据库的地址只需要填写mysql的容器名即可,比如这里的:mysqld。数据库名、数据库账号、数据库密码均为edges。一直下一步就好了。

ps:如果你现在的宿主机系统里面已经有mysql,不想再多运行一个浪费资源,则需要考虑删掉docker-compose.yaml里的mysql服务,并将网络类型更改为Host网络类型,以方便与宿主机上的mysql通信,如下:
version: "3"
services:
edge-admin:
image: icodex/edge-admin:1.3.3
container_name: edge-admin
network_mode: host
volumes:
- ./data/edge-admin/configs:/usr/local/goedge/edge-admin/configs
- ./data/edge-api/configs:/usr/local/goedge/edge-admin/edge-api/configs
restart: always
docker-compose.yaml编辑好之后,确定端口没有冲突,就可以执行以下命令启动整个系统了!
部署边缘节点
在上面的部署中,已经完成了管理平台的部署,这时可以按照官方教程添加边缘节点的方式进行添加。也可以按以下步骤,部署一个Docker容器形态的边缘节点。
这里使用GoEdge的自动注册功能,因此需要先在GoEdge管理界面 – 边缘节点 – 找到你所在集群 – 集群节点 – 安装升级 – 自动注册,把endpoints、clusterId、secret三个值记录下来。

然后准备一个docker-compose.yaml,输入以下内容,注意替换环境变量里相应的值
version: "3"
services:
edge-node:
image: icodex/edge-node:1.3.3
container_name: edge-node
environment:
- ENDPOINTS=http://xxx.com:8001
- CLUSTERID=xxx
- SECRET=xxx
network_mode: host
volumes:
- ./data/edge-node/cache:/opt/cache
- ./data/edge-node/configs:/usr/local/goedge/edge-node/configs
restart: always
接着使用docker compose命令启动它,很快就可以在管理平台看到这台上线的主机了。
以上,是完整部署GoEdge的全部步骤,非常简单吧!
最后
这个项目应该不算造轮子,只是我个人习惯使用docker进行服务的管理,docker运行毕竟套了多一层虚拟化,因此在边缘节点的容器的网络选择上,建议使用host类型,与宿主机共享会比较好。
最后,docker镜像制作所需文件我放在github上,可以点击这里访问:https://github.com/icodex/docker-goedge
原创文章,转载请注明出处,谢谢。
您也可以联系文章作者本人进行修改,若内容侵权或非法,可以联系我们进行处理。
任何个人或组织,转载、发布本站文章到任何网站、书籍等各类媒体平台,必须在文末署名文章出处并链接到本站相应文章的URL地址。
本站文章如转载自其他网站,会在文末署名原文出处及原文URL的跳转链接,如有遗漏,烦请告知修正。
如若本站文章侵犯了原著者的合法权益,亦可联系我们进行处理。









hi2年前0
请问有详细一点的自己搭建的教程吗你好2年前0
你好,可以再帮我看看吗? 我已经按照你的方法设定了,还是一样,wordpress后台的 Purge Varnish Cache 插件还是清除不到cache,依旧显示 the varnish control terminal is not responding at。谢谢 https://mjj.today/i/Srk2Tz https://mjj.today/i/Srkcoi你好2年前0
对,你说的没错,我配置的时候改了一些东西,现在我按照你的教学,可以启动了,网页可以缓存了,不过wordpress 清除cache 那个插件没用的,我输入本地回环地址127.0.0.1 :6082 ,再输入API key ,插件显示the varnish control terminal is not responding at 127.0.0.1:6082,就你图片那样,然后试一下点击清除cache 那里,他显示error,研究了一天,还是没有不行。你好2年前0
你好,为啥我按照你的方法,到第三部分,去到真正后源的服务器设定Varnish 部分,我填了真正后源的IP跟端口跟域名,然后重启 Varnish ,就出现这样了? 这是怎么回事? 谢谢 [Linux] AMH 7.1 https://amh.sh [varnish-6.6 start] ================================================== =========== [OK] varnish-6.6 is already installed. Could not delete 'vcl_boot.1713549650.959259/vgc.sym': No such file or directory Error: Message from VCC-compiler: VCL version declaration missing Update your VCL to Version 4 syntax, and add vcl 4.1; on the first line of the VCL files. ('/home/usrdata/varnish/default.conf' Line 1 Pos 1) ... #--- Running VCC-compiler failed, exited with 2 VCL compilation failedchu2年前0
很完善的教程‘hu2年前0
我用gmail EMAIL_SERVER="smtp://********@gmail.com:bpyfv*********[email protected]:587"叽喳2年前0
MAIL_SERVER="smtp://[email protected]:[email protected]:587" 大佬 这个使用outlook 或者gmail 是什么样子的格式? 邮寄已经开启smtp了hu2年前0
输入框的问题解决了,我没有设置反代,NEXTAUTH_URL改为域名+端口就好了