自建ATS CDN系统-Apache Traffic Server一键安装配置高性能的CDN节点
市面已经有了七牛、又拍云、阿里云CDN、腾讯云CDN等免费和付费兼备的CDN服务,为什么还要自建CDN系统?一是第三方CDN费用太贵,以腾讯云CDN为列,国内流量+国外流量+国内请求次数+国外请求次数+https请求等,各种名目收费加起来一个月光CDN费用就不少。
二是第三方的CDN要求多,这里主要是指的域名。一般来说空间放在国外的网站对于CDN加速的需求强烈些,但是国内的CDN偏偏要BA域名才可以使用。倘若已经BA了,谁还会把空间放在国外的主机上?矛盾在此了,选择亚太节点的CDN又太贵,国内的CDN又不能用。
所以,自建CDN还是十分必要的,尤其是对于一个视频类和图片类的大流量网站,自建CDN可以帮助节省大量的建站成本。本篇文章就来分享一下香菇肥牛博主 原创的利用Apache Traffic Server一键安装配置高性能的CDN节点脚本,更多的CDN加速教程这里还有:
- 自建CDN加速-Nginx反向绑定,缓存加速,自动更新缓存和获取真实IP
- 用Fikker自建CDN-支持Https,页面缓存,实时监控,流量统计,防CC攻击
- CloudFlare免费CDN加速自定义节点-CloudFlare自选IP加快CDN速度
PS:更新记录。
1、Amazon旗下的CloudFront功能强大,目前提供永久免费 1TB流量的CDN加速服务:Amazon CloudFront免费CDN加速配置教程-动态静态CDN加速 亚太节点。2023.2.18
一、ATS CDN加速使用介绍
网站:
- 官网:https://docs.trafficserver.apache.org/en/8.0.x/
- 脚本:https://github.com/Har-Kuun/OneClickCDN
Apache Traffic Server,简称ATS,由Yahoo于2009年开源,经过现在已经成为了非常成熟的Dai理/缓存/CDN系统,使用Traffic Server的CDN/大型网络有Apple, Comcast, Yahoo, Akamai, 以及国内的又拍云等。有兴趣的可以参考官方的文档研究研究。
二、一键安装配置CDN服务器
2.1 系统环境要求
目前支持Ubuntu 20.04 LTS, Debian 10, CentOS 7/8操作系统,CDN服务器正常运行时仅需要系统有500MB的内存。但是程序第一次编译安装的时候需要1500MB左右的内存。若您的VPS内存不够,可以加一些Swap。需要注意的是,该脚本需要安装在新装的操作系统中。
该程序和其他面板(比如宝塔,cPanel, Directadmin)等不兼容,为了可以达到最大的加速效果,建议选择大带宽和大流量的香港VPS、韩国VPS或者美国三网CN2 GIA VPS主机,这样无论是电信、联通还是移动网络用户,都可以获得最佳了访问体验。
2.2 一键安装CDN
一键安装配置CDN服务器只需要一行命令就可以。特别提醒:按照作者原话TLS 1.3 will NOT work on CentOS 7 because of old OpenSSL version,同时在 Ubuntu 18 上会出现 TLS1.2 不支持的情况,请选择其它的操作系统。
#原版(英文界面): wget https://raw.githubusercontent.com/Har-Kuun/OneClickCDN/master/OneClickCDN.sh && sudo bash OneClickCDN.sh #中文版: wget https://raw.githubusercontent.com/Har-Kuun/OneClickCDN/master/translation/translated_scripts/OneClickCDN_zh-CN.sh && sudo bash OneClickCDN_zh-CN.sh
第一次运行时,程序会提示自动编译安装Apache Traffic Server。
安装好Apache Traffic Server后,接下来会让你选择配置缓存规则、内存缓存大小、磁盘缓存大小、是否想让Traffic Server缓存动态内容等等。如下图
以下为挖站否的配置。
Traffic Server 安装成功! Starting Apache Traffic Server: [ OK ] Traffic Server 启动成功! Created symlink from /etc/systemd/system/multi-user.target.wants/trafficserver.service to /etc/systemd/system/trafficserver.service. 配置Traffic Server... 您是否要设置默认的缓存规则? [Y/N] y 配置缓存规则... 成功配置缓存规则。 配置缓存大小... 请输入内存缓存大小。 单位为M. 请输入一个整数值。 推荐值为200M每GB内存。 400 RAM缓存值已设置为 400M. 请输入磁盘缓存大小。 单位为M. 请输入一个整数值。 推荐值为至少2048M. 8000 磁盘缓存已设置为 8000M. 正在为磁盘缓存分区... 磁盘缓存分区成功。 配置header修改器... header修改器已启用 您是否想让Traffic Server缓存动态内容? [Y/N] y 更新缓存规则... 已更新缓存规则! Traffic Server将缓存动态内容。 Would you like to enable "Access-Control-Allow-Origin" header (CORS)? 如果您不知道这是什么,请选择Y. [Y/N] y 设置CORS信头... CORS信头已添加! The "server" header can be a short phrase, like "shc-cdn-server 1.0.0", or "Traffic Server 8.0.8". If you do not change it, the default value is "ATS/8.0.8" 您想要更改吗? [Y/N] n Server信头字段未更改。 配置成功! 请开始下一步,添加第一个CDN网站。
三、添加和配置CDN加速网站
按照上面的方法,接下来就是添加和配置CDN加速网站了,你也可以重新运行命令:sudo bash OneClickCDN.sh
或者 sudo bash OneClickCDN_zh-CN.sh
,如下图:
一键脚本提供了列出当前所有CDN网站、高级缓存控制选项、添加一个CDN网站、为网站配置SSL、显示配置文件与日志文件路径、查看网站统计数据、续期Let’s Encrypt证书等等。如下:
请问您需要什么帮助呢? 1 - 列出当前所有CDN网站。 2 - 高级缓存控制选项 3 - 添加一个CDN网站。 4 - 为网站配置SSL. 5 - 显示配置文件与日志文件路径。 6 - 查看网站统计数据。 7 - 列出常用命令。 8 - 显示作者信息。 11 - 更改网站IP地址。 12 - 移除一个CDN网站。 13 - 重新配置 Traffic Server. 14 - 续期Let's Encrypt证书 0 - 保存所有修改并退出此脚本。 请选择 1/2/3/4/5/6/7/8/11/12/13/14/0:
3.1 做好域名解析
本步可选。如果你的源站用了SSL证书,一键安装配置高性能的CDN节点可以帮助你在CDN服务器上自动申请和配置Let’s Encrypt证书。你需要先将你的域名解析到CDN服务器上的IP上。
3.2 添加CDN域名
现在你可以添加CDN加速网站了,挖站否的操作如下:
请问您需要什么帮助呢? 1 - 列出当前所有CDN网站。 2 - 高级缓存控制选项 3 - 添加一个CDN网站。 4 - 为网站配置SSL. 5 - 显示配置文件与日志文件路径。 6 - 查看网站统计数据。 7 - 列出常用命令。 8 - 显示作者信息。 11 - 更改网站IP地址。 12 - 移除一个CDN网站。 13 - 重新配置 Traffic Server. 14 - 续期Let's Encrypt证书 0 - 保存所有修改并退出此脚本。 请选择 1/2/3/4/5/6/7/8/11/12/13/14/0: 3 请输入您网站的域名(比如example.com): www.wzfou.com 请输入源站IP地址。如果源站有多个IP地址,可以填任意一个。 xx8.xxx.xxx.xxx 源站是否启用SSL?如果是HTTPS, 请输入1; 如果是HTTP, 请输入2. 1 为wzfou.com添加映射规则... 已添加2条规则。 您是否想要现在为wzfou.com配置SSL证书? 您可以提供您自己的证书;如果您已经将域名指向了该服务器的IP地址,您也可以一键生成免费的Let's Encrypt SSL证书。 请输入您的选项。 1: 我知道我的证书文件的路径(私钥,证书,CA中间链证书(可选)),我想提供我自己的证书。 2: 我已经将我的域名指向了该服务器的IP, 我想生成免费的Let's Encrypt证书。 3: 我不记得证书文件放在哪儿了,得去找找;或者我暂时不想为该域名设置SSL. 请选择 1, 2, or 3: 2 开始用Let's Encrypt生成免费SSL证书。... 该功能仍在实验阶段,请您知悉。... 关闭Traffic Server... 请输入一个邮箱地址: freehao123@gmail.com Stopping traffic_manager: [ OK ] Stopping traffic_server: [ OK ] Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
3.3 基本命令
配置、SSL、缓存规则、日志等路径如下:
General configurations: /etc/trafficserver/records.config SSL: /etc/trafficserver/ssl_multicert.config Mapping rules: /etc/trafficserver/remap.config Cache rules: /etc/trafficserver/cache.config Disk cache size: /etc/trafficserver/storage.config Log files location: /usr/local/var/log/trafficserver
查看Traffic Server状态、重新加载Traffic Server配置、关闭重启Traffic Server基本命令如下:
View Traffic Server stats: traffic_top Start/stop/restart Traffic Server: trafficserver start/stop/restart Check whether Traffic Server is running: trafficserver status Decode via header: traffic_via '[xXxXxX]' Reload Traffic Server config files: traffic_ctl config reload
四、ATS CDN加速效果体验
如何知道Apache Traffic Server是否生效呢?打开你的网站,用Chrome查看一下url返回头部,如果你在配置Apache Traffic Server自定义了"server" header
,这里就可以看到了,默认的是 "shc-cdn-server 1.0.0", or "Traffic Server 8.0.8".
通过挖站否的测试体验来看,对于图片、视频、音频等静态资源比较多的网站的加速效果很明显。
另外,由于采用了香港CN2+BGP线路,Apache Traffic Server CDN服务器可以有效地改善美国CN2 VPS主机在晚上上网高峰期的移动和联通打开网站的速度。
通过查看CDN加速的数据,我们也可以看到缓存命中率等更多的信息。
五、ATS CDN IP与负载均衡
5.1 传递真实IP
动态内容能不能将用户IP传递给后端?在 records.config添加下面一行,然后重启ATS。
CONFIG proxy.config.http.insert_forwarded STRING for
5.2 Server header
想要修改server header,你可以重装配置Traffic Server,或者在/etc/trafficserver/header_rewrite.so里面加上,然后重启ATS :
cond %{SEND_RESPONSE_HDR_HOOK} [AND] cond %{HEADER:server} =ATS/8.0.8 set-header server "NewServerName"
5.3 负载均衡
想要实现电信用户访问美国CN2 GIA,移动和联通访问香港或者韩国直连线路?搞三条线路的CDN服务器,然后到DNSPOD设置好线路解析即可。
文章出自:挖站否 https://wzfou.com/ats-cdn/,内容参考自:qing.su 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
- Cloudflare Partner接入管理Cloudflare CDN-启用Railgun动态加速
- 自建CDN加速-Nginx反向绑定,缓存加速,自动更新缓存和获取真实IP
- 用Fikker自建CDN-支持Https,页面缓存,实时监控,流量统计,防CC攻击
- 自建ATS CDN系统-Apache Traffic Server一键安装配置高性能的CDN节点
1500M?小内存用户流下眼泪。