平时我们需要自己搭建使用nginx的CDN服务,既然是自建CDN,那么我们肯定需要支持各种协议,比如HTTP/3、WebSocket、gRPC、IPv6等,下面我们来看看如何使用Nginx搭建一个支持各种协议的CDN服务。
我们还需要准备一台网络计较好的服务器,最起码比要加速的网站的网络要好,不然加速效果不明显,甚至可能适得其反。以下是Nginx的安装步骤:
自建步骤
- 安装宝塔面板
这里分别提供国内和国际2个版本安装,区别是宝塔国内版需要强制登录宝塔账号,国际版不需要,可自行选择安装,使用SSH客户端登录服务器,输入以下命令安装:
#CentOS系统,国内版本
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
#CentOS系统,国际版本
yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh aapanel
#Debian系统,国内版本
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec
#Debian系统,国际版本
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh aapanel
#Ubuntu系统,国内版本
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
#Ubuntu系统,国际版本
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh aapanel
- 安装Nginx
登录宝塔面板,点击左侧软件商店,搜索Nginx,点击安装,等待安装完成。
- 绑定域名
先准备一个CDN域名,解析到服务器的A记录,然后点击左侧网站,点击添加站点,输入域名,选择Nginx,点击提交,等待创建完成。
- 配置Nginx
点击宝塔面板左侧⇒软件商店找到设置点击Nginx设置,点击配置文件,找到server标签,添加以下配置:
#在http{}里面加入以下代码
proxy_cache_path /www/wwwroot/www.efvcms.com levels=1:2 keys_zone=efv:500m inactive=1d max_size=50g;
- 主要参数
proxy_cache_path /www/wwwroot/www.efvcms.com 后面路径为缓存目录,可自行修改,比如你CDN域名根目录
keys_zone=efv:500m efv为缓存的名字,可不变;后面500m为内存缓存空间,自行根据内存大小适当进行修改
inactive=1d 为一定时间内没人访问的资源缓存清空时间,如1d,也就是1天没有被访问的内容自动清除,10天可设置为10d
max_size=50g 为最大缓存空间,可根据硬盘大小自行设置
如图所示:

接下来再点击域名右侧设置按钮,点击配置文件,加入以下代码:
location /
{
proxy_pass http://185.172.165.11:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_cache efv;
proxy_ignore_headers cache-control;
proxy_cache_key $host$uri$is_args$args;
add_header Nginx-Cache $upstream_cache_status;
proxy_cache_valid 200 304 30m;
proxy_cache_valid 301 24h;
proxy_cache_valid 500 502 503 504 0s;
proxy_cache_valid any 1s;
proxy_cache_min_uses 1;
expires 12h;
}
主要参数如下:
proxy_pass http://185.172.165.11:3000 后面地址为需要加速的地址,可直接修改为转码服务器的访问地址,如ip:3000
proxy_cache efv 后面的efv为之前设置的缓存名称,也就是直接引用该缓存名称的配置
如图所示:

然后删除配置文件里面的这几行代码,不然js、jpg等文件缓存不了,代码如下:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
}
最后基本上配置好了,然后此时我们访问CDN域名后,数据会根据缓存配置,缓存到设置的缓存目录,注意如果这里不生效,记得点击宝塔面板左侧软件商店找到NGINX重启即可。