CDN加速

自建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加速教程这里还有:

  1. 自建CDN加速-Nginx反向绑定,缓存加速,自动更新缓存和获取真实IP
  2. 用Fikker自建CDN-支持Https,页面缓存,实时监控,流量统计,防CC攻击
  3. CloudFlare免费CDN加速自定义节点-CloudFlare自选IP加快CDN速度

PS:更新记录。

1、Amazon旗下的CloudFront功能强大,目前提供永久免费 1TB流量的CDN加速服务:Amazon CloudFront免费CDN加速配置教程-动态静态CDN加速 亚太节点。2023.2.18

一、ATS CDN加速使用介绍

网站:

  1. 官网:https://docs.trafficserver.apache.org/en/8.0.x/
  2. 脚本: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主机,这样无论是电信、联通还是移动网络用户,都可以获得最佳了访问体验。

1、LOCVPS香港CN2 VPS主机性能和速度评测-CN2+BGP接入三网速度快

2、经典CN2 GIA VPS E主机终身6.58%折扣-1G内存年付约$160美元

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加速效果体验

如何知道

另外,由于采用了香港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 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

文章更新于: %s = human-readable time difference 下午8:17

Qi

关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。

查看评论