自建ATS CDN系统-Apache Traffic Server 一键安装高性能CDN节点教程

市面上已经有了七牛、又拍云、百度云、阿里云和腾讯云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介绍

网站:

  1. 官网:https://docs.trafficserver.apache.org
  2. 脚本: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 不支持的情况,请选择其它的操作系统。

Bash
#原版(英文界面):
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。
202011061604657028360534

安装好Apache Traffic Server后,接下来会让你选择配置缓存规则、内存缓存大小、磁盘缓存大小、是否想让Traffic Server缓存动态内容等等。如下图

202011061604657063426656

以下是运维114的配置:

Bash
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,如下图:

202011061604657178845456

一键脚本提供了列出当前所有CDN网站、高级缓存控制选项、添加一个CDN网站、为网站配置SSL、显示配置文件与日志文件路径、查看网站统计数据、续期Let’s Encrypt证书等等。如下:

Bash
请问您需要什么帮助呢?
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的操作如下:

Bash
请问您需要什么帮助呢?
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...
请输入一个邮箱地址: 
[email protected]
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、缓存规则、日志等路径如下:

Bash
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

202011061604657362250961

查看Traffic Server状态、重新加载Traffic Server配置、关闭重启Traffic Server基本命令如下:

Bash
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的测试体验来看,对于图片、视频、音频等静态资源比较多的网站的加速效果很明显。

202011061604657672692529

另外,由于采用了香港CN2+BGP线路,Apache Traffic Server CDN服务器可以有效地改善美国CN2 VPS主机在晚上上网高峰期的移动和联通打开网站的速度。

202011061604657730522389

通过查看CDN加速的数据,我们也可以看到缓存命中率等更多的信息。

202011061604657783630616

 

ATS CDN IP与负载均衡

传递真实IP

动态内容能不能将用户IP传递给后端?在 records.config添加下面一行,然后重启ATS。

Bash
CONFIG proxy.config.http.insert_forwarded STRING for
Server  header

想要修改server  header,你可以重装配置Traffic Server,或者在/etc/trafficserver/header_rewrite.so里面加上,然后重启ATS :

Bash
cond %{SEND_RESPONSE_HDR_HOOK} [AND]
cond %{HEADER:server} =ATS/8.0.8
    set-header server "NewServerName"
负载均衡

想要实现电信用户访问美国CN2 GIA,移动和联通访问香港或者韩国直连线路?搞三条线路的CDN服务器,然后到DNSPOD设置好线路解析即可。

202011061604657877162976

搬瓦工推荐方案

温馨提醒 如果您有选择困难症,直接选中间的 CN2 GIA-E方案,季付 $49.99,多达 12 个机房任意切换
方案 内存 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购买图文教程


【AD】美国洛杉矶CN2 VPS/香港CN2 VPS/日本CN2 VPS推荐,延迟低、稳定性高、免费备份_搬瓦工vps

【AD】#限时限量回归#搬瓦工:THE PLAN限量版套餐,2核/2GB/40GB SSD/1000GB/1Gbps,$27/季,$99/年,19机房可选,CN2 GIA/AS9929/日本/香港等