市面上已经有了七牛、又拍云、百度云、阿里云和腾讯云CDN等免费和付费兼备的CDN服务,为什么还要自建CDN系统呢?一是第三方CDN费用太贵,以腾讯云CDN为列,国内流量+国外流量+国内请求次数+国外请求次数+https请求等,各种名目收费加起来一个月光CDN费用就不少。二是第三方的CDN要求多,这里主要是指的域名。一般来说空间放在国外的网站对于CDN加速的需求强烈些,但是国内的CDN域名需要备案才可以使用。如果备案了谁还会把网站放在国外服务器上?这就出现了矛盾,但是选择亚太节点的CDN又太贵,国内的CDN又不能用。所以,我们就要考虑自建CDN,尤其是对于一个视频类和图片类的大流量网站,自建CDN可以帮助节省大量的建站成本。之前国外主机测评介绍过:CentOS一键安装Fikker自建CDN系统,支持Https/反向代理/防CC攻击,本文我们就来分享一下利用Apache Traffic Server一键安装配置高性能的CDN节点脚本。
Apache Traffic Server介绍
网站:
- 官网:https://docs.trafficserver.apache.org
- 脚本:https://github.com/Har-Kuun/OneClickCDN
Apache Traffic Server,简称ATS,由Yahoo于2009年开源,经过现在已经成为了非常成熟的Dai理/缓存/CDN系统,使用Traffic Server的CDN/大型网络有Apple, Comcast, Yahoo, Akamai, 以及国内的又拍云等。有兴趣的可以参考官方的文档研究研究。
一键安装配置CDN服务器
系统环境要求
目前支持Ubuntu 20.04 LTS, Debian 10, CentOS 7/8操作系统,CDN服务器正常运行时仅需要系统有500MB的内存。但是程序第一次编译安装的时候需要1500MB左右的内存。若您的VPS内存不够,可以加一些Swap。需要注意的是,该脚本需要安装在新装的操作系统中。
该程序和其他面板(比如宝塔,cPanel, Directadmin)等不兼容,为了可以达到最大的加速效果,建议选择大带宽和大流量的香港VPS、韩国VPS或者美国三网CN2 GIA VPS主机,这样无论是电信、联通还是移动网络用户,都可以获得最佳了访问体验。
一键安装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缓存动态内容等等。如下图
以下是运维114的配置:
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:
域名解析
本步可选。如果源站用了SSL证书,一键安装配置高性能的CDN节点可以帮助你在CDN服务器上自动申请和配置Let’s Encrypt证书。需要先将域名解析到CDN服务器上的IP上。
添加CDN域名
现在可以添加CDN加速网站了,运维114的操作如下:
请问您需要什么帮助呢? 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.yunwei114.com 请输入源站IP地址。如果源站有多个IP地址,可以填任意一个。 xx8.xxx.xxx.xxx 源站是否启用SSL?如果是HTTPS, 请输入1; 如果是HTTP, 请输入2. 1 为yunwei114.com添加映射规则... 已添加2条规则。 您是否想要现在为yunwei114.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... 请输入一个邮箱地址: xxx@yunwei114.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
基本命令
配置、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”.
通过运维114的测试体验来看,对于图片、视频、音频等静态资源比较多的网站的加速效果很明显。
另外,由于采用了香港CN2+BGP线路,Apache Traffic Server CDN服务器可以有效地改善美国CN2 VPS主机在晚上上网高峰期的移动和联通打开网站的速度。
通过查看CDN加速的数据,我们也可以看到缓存命中率等更多的信息。
ATS CDN IP与负载均衡
传递真实IP
动态内容能不能将用户IP传递给后端?在 records.config添加下面一行,然后重启ATS。
CONFIG proxy.config.http.insert_forwarded STRING for
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"
负载均衡
想要实现电信用户访问美国CN2 GIA,移动和联通访问香港或者韩国直连线路?搞三条线路的CDN服务器,然后到DNSPOD设置好线路解析即可。
搬瓦工推荐方案
方案 | 内存 | CPU | 硬盘 | 流量/月 | 带宽 | 机房 | 价格 | 购买 |
---|---|---|---|---|---|---|---|---|
CN2 (最便宜) |
1GB | 1核 | 20GB | 1TB | 1Gbps | DC3 CN2 DC8 ZNET |
$49.99/年 | 直达 |
CN2 | 2GB | 1核 | 40GB | 2TB | 1Gbps | $52.99/半年 $99.99/年 |
直达 | |
CN2 GIA-E (最推荐) |
1GB | 2核 | 20GB | 1TB | 2.5Gbps | DC6 CN2 GIA-E DC9 CN2 GIA 日本软银 JPOS_1 荷兰 EUNL_9 |
$49.99/季度 $169.99/年 |
直达 |
CN2 GIA-E | 2GB | 3核 | 40GB | 2TB | 2.5Gbps | $89.99/季度 $299.99/年 |
直达 | |
HK | 2GB | 2核 | 40GB | 0.5TB | 1Gbps | 中国香港 CN2 GIA | $89.99/月 $899.99/年 |
直达 |
HK | 4GB | 4核 | 80GB | 1TB | 1Gbps | $155.99/月 $1559.99/年 |
直达 | |
TOKYO | 2GB | 2核 | 40GB | 0.5TB | 1.2Gbps | 日本东京 CN2 GIA | $89.99/月 $899.99/年 |
直达 |
TOKYO | 4GB | 4核 | 80GB | 1TB | 1.2Gbps | $155.99/月 $1559.99/年 |
直达 | |
搬瓦工优惠码:BWH3HYATVBJW | 2022年最新搬瓦工VPS购买图文教程 |