自建 CDN 的一种方案、反向代理缓存系统搭建教程

2023-08-27 9704阅读 0评论
首页 » 资源 » 技术 » 正文

自建 CDN 的一种方案、反向代理缓存系统搭建教程

自建 CDN的一种方案、反向代理缓存系统搭建教程

自建 CDN 的一种方案、反向代理缓存系统搭建教程 第1张

准备工作
首先必须至少有两台服务器或 VPS 等能够进行自主操作的资源,比如 A 和 B,A 在美国,使用 WordPress,IP 地址:1.2.3.4,域名绑定:www.a.com;B 在日本,空白网站,IP 地址:2.3.4.5,域名绑定:static.b.com。

网站主站架设在 A 服务器上(即所有网站内容,包含动态文件、数据库等),我们将在 B 站上架设CDN服务。

程序安装
由于 A 站上已经将服务环境架设好,网站也已经正常运行,同时也无需在 A 站上进行多余操作,故此,所有操作未进行说明均表示 B 站进行。

首先,自建 CDN这里选择的是 ngx_cache_purge 这一模块,要运行这个模块,就需要服务器上安装有 Nginx,若之前安装过的,重新安装一次,加上参数即可。

下载相关软件

wget http://nginx.org/download/nginx-1.10.3.tar.gz  wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz  tar zxf nginx-1.10.3  tar zxf ngx_cache_purge-2.3.tar.gz

安装 Nginx

cd nginx-1.10.3  ./configure --prefix=/usr/local/nginx --user=www --group=www --add-module=../ngx_cache_purge-2.3 # 因为各人需求不同,所以这里康康只是写了 ngx_cache_purge 模块,若有其他需求请自行参考 nginx 编译参数  make && make install

验证 ngx_cache_purge 安装

/usr/local/nginx/sbin/nginx -V

若出现了“–add-module=../ngx_cache_purge-2.3”字样表示已经安装完成

Nginx 配置
打开 nginx.conf 文件,在 HTTP 区域中添加如下内容

proxy_connect_timeout 5;  proxy_read_timeout 60;  proxy_send_timeout 5;  proxy_buffer_size 16k;  proxy_buffers 4 64k;  proxy_busy_buffers_size 128k;  proxy_temp_file_write_size 128k;  proxy_cache_path /data/wwwroot/static.a.com levels=1:2 keys_zone=cache_one:200m inactive=30d max_size=5g;  proxy_temp_path /data/wwwroot/static.a.com/tmp;

注意上面的“/data/wwwroot/static.a.com”,这是 B 站的网站路径

打开网站配置文件,在添加或修改如下内容,将静态文件进行缓存

location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico|js|css)$ {  proxy_pass http://www.a.com;  proxy_redirect off;  proxy_set_header Host www.a.com;  proxy_cache cache_one;  proxy_cache_valid 200 302 304 365d;  proxy_cache_valid 301 1d;  proxy_cache_valid any 1m;  add_header Images-Cache "$upstream_cache_status from $host";  add_header Pragma public;  add_header Cache-Control "public, must-revalidate, proxy-revalidate";  access_log off;  log_not_found off;  expires max;  }

最后重新载入下 Nginx,当以后访问 static.a.com 时,B 站会先检查本地是否有缓存,若缓存存在则直接展示,若不存在则会访问 www.a.com,将资源保存下来进行展示。

网站程序配置
现在CDN架设好了,但是要怎样使用到网站上呢?

主站所有静态资源域名必须是 static.a.com
static.a.com 域名必须正确指向 B 站
WordPress 替换法

如果网站使用的是 WordPress 程序,那可以很方便的对资源进行操作,其实也无需操作,就是把静态资源域名进行更改即可,反正 CDN 会自动拉取资源到本地!

打开本站模板函数文件“function.php”,在其中添加如下代码

if ( !is_admin() ) {  add_action('wp_loaded','lovekk_ob_start');  function lovekk_ob_start() {  ob_start('lovekk_cdn_replace');  }  function lovekk_cdn_replace($html) {  return str_replace('http://www.a.com/wp-content/uploads/', 'http://static.a.com/wp-content/uploads/', $html);  }  }

若本站安装有缓存插件,将缓存先清空一次,然后尝试打开网站,若 uploads 目录下所有静态资源均指向 static.a.com 域名,且访问正常,则表明 CDN 已经运行正常了!


免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

    文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

    发表评论

    快捷回复: 表情:
    评论列表 (暂无评论,9704人围观)

    还没有评论,来说两句吧...

    目录[+]