今天来介绍一下这几天我自己写的一个一键脚本。使用该一键脚本,您可以在自己的VPS上一键安装部署CDN, 方便地为您的网站提速。
本文及程序作者为香菇肥牛,原文链接https://qing.su/article/oneclick-cdn.html, 转载需注明原文链接。谢谢!
Github项目地址:https://github.com/Har-Kuun/OneClickCDN 欢迎大家加星星加叉叉
1, 系统环境要求
目前支持Ubuntu 20.04 LTS, Debian 10, Debian 11, CentOS 7/8操作系统。
CDN服务器正常运行时仅需要系统有500MB的内存。但是,程序第一次编译安装的时候需要1500MB左右的内存。若您的VPS内存不够,可以加一些Swap.
需要注意的是,该脚本需要安装在新装的操作系统中。该程序和其他面板(比如宝塔,cPanel, Directadmin)等不兼容。毕竟,装CDN程序的节点上也不应该搭建其他程序的。
2, 使用方法
因为是一键脚本,所以使用起来非常简单,只需要一行命令就可以啦!
原版(英文界面):
1 | wget https://raw.githubusercontent.com/Har-Kuun/OneClickCDN/master/OneClickCDN.sh && sudo bash OneClickCDN.sh |
中文版:
1 | wget https://raw.githubusercontent.com/Har-Kuun/OneClickCDN/master/translation/translated_scripts/OneClickCDN_zh-CN.sh && sudo bash OneClickCDN_zh-CN.sh |
第一次运行时,程序会提示自动编译安装Traffic Server. 安装完毕后,程序会引导新建CDN网站,自动签发SSL, 等等。您需要将您网站的域名设置A记录解析到这台VPS的IP地址上。
您也可以随时重新运行该脚本,用来管理您的服务器上部署的CDN网站,查看网站统计,等等。
3, 管理面板
脚本执行后拥有功能丰富但简单易用的后台管理界面。
4, 实现的功能
首先,最基本的功能就是CDN. 安装后,程序就会将您的VPS变成一个高性能CDN节点,用来加速和缓存您的网站。
同时,脚本支持一键设置SSL, 您可以提供您自己的SSL证书,或者也可以一键签发免费的Let’s Encrypt证书,并且开启OCSP装订。
脚本还支持随时增添新的CDN网站。您只需要根据脚本引导,输入网址和源站IP地址,即可分分钟添加CDN网址。您可以使用脚本管理CDN网站,查看网站数据,清除缓存,等等。
2021年12月12日新增:目前已支持配置与SSL证书导入导出,可以快速在多个CDN节点中实现同步配置网站。
小彩蛋:稍微修改一下脚本(脚本开头有说明,可以开启反代模式)可以一键反代hostloc哦 ^.^
如果您有任何疑问,或者提议,欢迎在这里留言!如果您能在Github项目中加星星叉叉,我将万分感谢~
本文及程序作者为香菇肥牛,原文链接https://qing.su/article/oneclick-cdn.html, 转载需注明原文链接。谢谢!
如果有可视化面板就更好了,支持!
感谢支持!可视化面板就不太会弄了……
大佬,这个跟反向代理有什么区别吗?
可以理解为稍微高级一点的反代吧~
登陆状态不刷新,应该怎么解决?
要什么自行车。面板没有系统级操作直观,出现问题更好排查
可以限制域名流量就更好了。因为有时候被DD了 房子说不好就没了 很难受
哈哈,感谢回复~
可以装Traffic Control主控端实现,不过比较复杂,就没有弄进去 https://traffic-control-cdn.readthedocs.io/en/latest/index.html
mark一个,之后试试,感谢博主!
感谢支持!
貌似没有waf功能?
嗯,确实没有这个功能……
安装后 添加了一个域名,如何再次重新启动呢?重新运行脚本?
嗯,重新运行脚本就可以了,会直接进入菜单界面
如果加错了 怎么删除呢?
如果只是IP地址填错了,可以直接用面板的修改IP功能。如果其他信息填错了,可以分别找到下面这三个文件,在文件末尾找到并删除对应的行。
2
3
/etc/trafficserver/hostsavailable.sun
/etc/trafficserver/remap.config
删除完了以后重启traffic server
过两天我会给脚本添加一个删除网站的功能,这样方便一点
谢谢 不过现在添加站点有问题,在选择https和http的时候,在最后生成的 remap.config里面,选择 2 选项会自动跳转至 https.
哦哦,还真是,我之前没有调试无ssl的情况,我去修改一下…
大佬,这个如果您升级了。我这边是需要重新安装的是吧?
问一下 linux下怎么删除呢?
没有多节点负载均衡和宕机切换?
如果你需要源站多服务器之间的均衡负载,可以修改实现。如果你需要CDN节点的均衡负载,这个功能你可以在DNS服务提供商那里实现…
上上文没搞定。现在有一键那就再试试。谢过
感谢支持!
bash: oneclickCDN.sh: No such file or directory
大小写
哈哈哈,感谢提醒,之前是小写的,后来Github上面改了之后这里忘掉改了
大佬,请教一下,如果您这边有更新,服务器是需要重新安装的对吧?
如何删除已经安装好的 OneClickCDN呢? 如何删除这个服务呢?
如果我更新了之后服务器无需重新安装呢,您可以直接下载新的脚本,可以直接适配以前安装的版本
希望大佬适配一些debian 9
好的,过两天有空了去搞~
能加上中文版吗?感觉更方便点,不用再想想是什么意思
好的,中文翻译正在进行中,不过由于翻译量较大,所以可能还要等一小段时间~
好东西,先留个记号。
学习了,肥牛大哥
首先感谢大佬写出这么好用的cdn脚本辛苦啦,我新白一枚不懂就问,不知道是我没了解功能还是没有域名回源cname方式,源站只能用ip吗?
要是有控制面板真的就完美了,谢谢大佬!
可以回源CNAME, 但是要手动修改配置信息。
大佬,如果源站为域名,需要修改哪里呢?
请问自己添加ssl证书怎么添加 请输入您的私钥地址 (e.g., /etc/certs/qing.su.key):添加时需要带e.g., 吗
自动签发SSL证书失败
选择Y\N都会出现这个,请问怎么添写
请输入您的CA中间链证书地址 (e.g., /etc/certs/qing.su.ca-bundle):
输入Y就不需要中间链,输入N才需要中间链,如果你的证书里面已经包含了中间链证书的话就不需要再添加单独的中间链了。
晕,e.g.是比如的意思………
这个脚本支持Nat机吗?博主,nat机便宜线路好
NAT机没有端口用不了的,如果母鸡上有反代程序的话可能可以,不过我没有试过。
希望博主增加web面板管理的功能,愿意付费
额,没有这个实力写这个功能呢。可以安装Apache Traffic Control, 专门基于ATS的Web面板与终端。
大佬 本来想用香港服务器做为cdn加速国内服务器,结果直接域名直接被拦截跳转到提示备案的页面,用Nginx反代没这个问题啊,有没有办法解决?能不能添加自定义回源域名设置?谢谢!
可以自定义回源方式,但是需要手动配置,脚本本身没有提供这个功能。
请教一下大佬:配置这一步时,能填域名吗?
请输入源站IP地址。如果源站有多个IP地址,可以填任意一个。
这一步不能填域名哦。如果用域名回源的话需要额外手动配置。
安装好了, 似乎没生效,不知道哪里出了问题。
源地址:https://s3.us-west-1.wasabisys.com/888/20180605.ts
CDN地址:https://cdn.yy88.ru/888/20180605.ts
Domain Type(CDN/RevProxy) OriginIP
cdn.yy88.ru CDN 76.191.80.11:443
是缓存的端口错了吗?怎么显示的源IP:443端口
这里没问题,看上去是TLS握手的问题,加我QQ 694082200我来看看吧
我24号发的找出原因了,是因为源地址是域名,并且需要修改请求头。
请教一下哪里修改呢?
额,能不能麻烦具体描述一下需要怎样修改请求头呢?不是特别能get到你的情形……
大佬,按照您的教程安装好了,挺好用。。现在有些问题,1.如何设置http强制跳转https?2.如何设置防盗链?3.动态内容能不能将用户IP传递给后端?。。
1, http强制跳转到https应该是默认设置好的。可以看下/etc/trafficserver/remap.config文件,有没有类似下面的一行,如果没有的话可以手动添加在最后一行之前,然后重启ATS.
2, 这个我也不会,抱歉。
3, records.config添加下面一行
然后重启ATS
https://blog.51cto.com/481814/1907523
这里面有些设置,大佬能一起研究下嘛?这个功能应该是很好的。
感谢,我去看看。
配置HTTP加速,很正常,但是如果源站是https的话(且源IP为域名)一直出错。大佬能否指点下,
和http是同样的操作,添加的时候选https就可以了,之后配置一下SSL.
有点问题,vps没有ipv6,导致repo全部超时timeout无法安装
这个不需要IPv6的呀,看看是不是服务器的网络不通或者DNS不对~
另外能不能支持自定义源站端口,包括http和https的端口,非标准端口
可以的,需要自己修改remap.config文件。
可以了,谢谢
另外问一下,如何自定义修改名称,目前可以从页面中看到ATS 8.0.8,想修改掉这个自定义的,是哪个文件
安装的时候有提示设置Servername的,如果错过了可以在菜单里选择重新配置CDN服务器
可以手动修改么,如果重新配置一次之前的配置又没了又要重新来一遍,因为我已经手动修改了很多的默认配置,不想再来一次。。。
/etc/trafficserver/header_rewrite.so里面加上:
2
3
cond %{HEADER:server} =ATS/8.0.8
set-header server "NewServerName"
然后重启ATS
还有就是想问一下,这个和fikker相比功能方面是一样的么?(除了CC攻击防护外)
Fikker和ATS, Nginx, Varnish根本没得比,Fikker能实现的功能这些全都可以实现。但是我这个脚本只包含了最基本最常用的CDN功能,其他的功能需要自己手动配置了。
期待大佬整合一下,以后如果功能强大可以考虑收费(便宜点相信大家都会支持的,fikker实在是太贵,一年300多比vps都贵)
大佬,脚本申请的免费Let’s Encrypt SSL证书是自动续期的吗?
不是自动续期的,需要手动续期。
OneClickCDN.log
奶牛https://cowtransfer.com/s/cfec38c576a841取件码9ycsp6
大佬帮忙看看吧
日志上没有任何报错,我也不知道为什么会失败,需要的话可以加我QQ694082200然后设置一个临时root密码发给我,帮你看看吧
大佬你好,请问有设置缓存过期时间或禁止缓存目录或文件的功能吗?
我用在wordpress上全站加速,但登录状态无法刷新。
可以的,编辑cache.config文件设置缓存规则哈。
如何可以设置多个源吗?
这个脚本不支持自动设置多个源站,但是你可以手动配置ATS实现多个源站均衡负载。
这么增加显示缓存或者没有缓存,类似这种:X-Cache: HIT
默认就开启了这个功能,显示在header的via项里面。
嗯定了今天晚上就吃香菇肥牛饭了
两台vps,CentOS 7系统配置系统都一样,使用的trafficserver配置也是一样,一台可以缓存可以使用,另外一台配置完成缓存都正常,但过几个小时后就不能缓存了via: http/1.1 223251.38809.sys.ipv4.io (ATS [cMsNf ])查询是未缓存,sftp这些也出现无法连接到,ssh可以连接使用,系统已经更换过也是不行一样存在,过几个小时就不能缓存了
没有遇到过这样的问题……
请问,怎么再次把中文面板调出来,,,关闭了,,,不知道添加cdn域名的命令
再运行一遍那个脚本文件就可以了
配置了主域名,下面的子域名还用配置添加吗?还是说可以直接用
子域名也需要添加
xxx.com配置后正常访问
http://www.xxx.com配置后一直提示加速器上找不到
两个是同一个源站,求助大佬
www. 需要在 remap.config 里面设置redirect
点赞大佬
请问debian 9还做适配吗
自己很多服务都是在debian 9 兼容性最好
debian 9 使用率和centos 7差不多吧!
Debian 9适配的时候会出现证书错误,暂时没弄明白原因,所以暂时没有适配。
多个节点的话证书续期比较麻烦,大佬有什么简单的解决办法?
在一个节点上续期,然后把证书复制到其他机器上,目前只能这样了,后续如果有空的话会考虑出一个多节点续期的功能
只能这样了,用sftp复制到其它,大佬啥时候出个自动续期,我看别的可以用txt记录申请不用解析指向,这也是一个思路。
有api吗?
博主的文章真是受益良多
大佬这个原理是啥呢
多个源站在一个IP上,怎么搞啊
禁止缓存一个目录,在cache.config文件 如何修改?
如果想做多个缓存该如何操作呢?
不知道为什么,我弄多个SSL证书的时候,都不行呢,只有第一SSL的证书成功了。
得看一下你的具体的报错信息才能知道原因
能否出一个自动续签证书的功能,不然三个月上去一次有点麻烦
这个可以有,下次更新一下这个功能
大佬就是流弊。。。
不过 大佬是否可以出个win版本的。用win服务器
这个好像没办法呢
使用正常,就是使用后谷歌浏览器打开显示的是手机端,其他的浏览器打开的都是电脑端,这是什么原因啊.
我自己没有遇到过这样的问题,目测是缓存的原因,建议清一下缓存试试。
大佬什么时候出一个集群控制器啊,一台一台部署,一台一台设置好麻烦啊.
这个缓存设置到的大小,比如满了会自动清空嘛?
没有调用的缓存内容会按照存入顺序清空
安装默认是配置好的缓存规则吗?
第一次访问的时候都特别慢。后面就快了,采用的是 国内源+香港节点 PING值都在14左右。是不是没有缓存到服务器?
第一次访问的时候CDN会从源站请求资源储存到缓存,所以肯定是会稍微慢一点的,但是后面就快了。可以自己手动push内容进缓存,这样第一次就可以很快。
什么时候推出DNS教程啊
DNS教程是指自己搭建DNS服务器的教程嘛?
是的 自己搭建DNS服务器的教程 能区分线路的 搭配CDN使用方便
好的,我有空的时候来研究研究
搭建DNS服务器的教程 能区分线路的 搭配CDN使用方便
我站访问量比较大,上了大佬的cdn脚本做测试。cdn服务器是4核心的,top后台就看到一个线程cpu跑满了,不能多个cpu线程一起运作么?
是我看错了,哈哈,是可以多线程一起跑的
来支持一下
缺一个网页端,大佬再开发一下web ui就更好了
感谢支持 web ui太难了,我来研究研究
非常不错,mark了。但是没有waf可能是个鸡肋。
需要更新了 404了
老哥能做智能dns解析吗?
启用反代功能的时候,在哪里能设置字符的替换,,比如把 aaa 替换成 bbb