设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 47|回复: 17

利用Nginx反向代理功能自建CDN加速页面服务

[复制链接]

2

主题

58

回帖

162

积分

注册会员

积分
162
发表于 2024-4-20 08:08:48 | 显示全部楼层 |阅读模式
一般我们选用CDN加速服务会用到第三方CDN服务,也有利用服务器自建CDN软件工具。当然,我们还可以用到Nginx Web反代的方式实现缓存加速页面,实现CDN加速的方式。具体的操作如下。
第一、部署前的准备

这里,我们需要准备2台或者以上的服务器。而且可以分布不同的地区。比如A和B,A在美国,使用WordPress,IP地址:1.2.3.4,域名绑定:www.jb51.net。B在日本,空白网站,IP地址:2.3.4.5,域名绑定:static.jb51.net。
网站主站架设在A服务器上(即所有网站内容,包含动态文件、数据库等),我们将在B站上架设CDN服务。
第二、程序安装

由于A站上已经将服务环境架设好,网站也已经正常运行,同时也无需在A站上进行多余操作,故此,所有操作未进行说明均表示B站进行。
首先,自建CDN这里选择的是ngx_cache_purge这一模块,要运行这个模块,就需要服务器上安装有Nginx,若之前安装过的,重新安装一次,加上参数即可。
下载相关软件:
  1. wget http://nginx.org/download/nginx-1.10.3.tar.gz
  2. wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
  3. tar zxf nginx-1.10.3
  4. tar zxf ngx_cache_purge-2.3.tar.gz
复制代码
安装Nginx:
  1. cd nginx-1.10.3
  2. ./configure –prefix=/usr/local/nginx –user=www –group=www –add-module=../ngx_cache_purge-2.3
复制代码
因为各人需求不同,所以这里只是写了ngx_cache_purge模块,若有其他需求请自行参考nginx编译参数
  1. make && make install
复制代码
验证ngx_cache_purge安装:
  1. /usr/local/nginx/sbin/nginx -V
复制代码
若出现了“–add-module=../ngx_cache_purge-2.3”字样表示已经安装完成
Nginx配置:

打开nginx.conf文件,在HTTP区域中添加如下内容
  1. proxy_connect_timeout 5;
  2. proxy_read_timeout 60;
  3. proxy_send_timeout 5;
  4. proxy_buffer_size 16k;
  5. proxy_buffers 4 64k;
  6. proxy_busy_buffers_size 128k;
  7. proxy_temp_file_write_size 128k;
  8. proxy_cache_path /data/wwwroot/static.jb51.net levels=1:2 keys_zone=cache_one:200m inactive=30d max_size=5g;
  9. proxy_temp_path /data/wwwroot/static.jb51.net/tmp;
复制代码
注意上面的“/data/wwwroot/static.jb51.net”,这是B站的网站路径
打开网站配置文件,在添加或修改如下内容,将静态文件进行缓存
  1. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico|js|css)$ {
  2. proxy_pass https://www.jb51.net;
  3. proxy_redirect off;
  4. proxy_set_header Host www.jb51.net;
  5. proxy_cache cache_one;
  6. proxy_cache_valid 200 302 304 365d;
  7. proxy_cache_valid 301 1d;
  8. proxy_cache_valid any 1m;
  9. add_header Images-Cache “$upstream_cache_status from $host”;
  10. add_header Pragma public;
  11. add_header Cache-Control “public, must-revalidate, proxy-revalidate”;
  12. access_log off;
  13. log_not_found off;
  14. expires max;
  15. }
复制代码
最后重新载入下Nginx,当以后访问static.jb51.net时,B站会先检查本地是否有缓存,若缓存存在则直接展示,若不存在则会访问www.jb51.net,将资源保存下来进行展示。
第三、网站程序配置

现在CDN架设好了,但是要怎样使用到网站上呢?
主站所有静态资源域名必须是static.jb51.net
static.jb51.net域名必须正确指向B站
WordPress替换法

如果网站使用的是WordPress程序,那可以很方便的对资源进行操作,其实也无需操作,就是把静态资源域名进行更改即可,反正CDN会自动拉取资源到本地!
打开本站模板函数文件“function.php”,在其中添加如下代码
  1. if ( !is_admin() ) {
  2. add_action(‘wp_loaded','lovekk_ob_start');
  3. function lovekk_ob_start() {
  4. ob_start(‘lovekk_cdn_replace');
  5. }
  6. function lovekk_cdn_replace($html) {
  7. return str_replace(‘https://www.jb51.net/wp-content/uploads/', ‘http://static.jb51.net/wp-content/uploads/', $html);
  8. }
  9. }
复制代码
若本站安装有缓存插件,将缓存先清空一次,然后尝试打开网站,若uploads目录下所有静态资源均指向static.jb51.net域名,且访问正常,说明已经安装正常。
以上就是利用Nginx反向代理功能自建CDN加速页面服务的详细内容,更多关于利用Nginx反向代理功能自建CDN加速页面服务的资料请关注脚本之家其它相关文章!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

1

主题

42

回帖

108

积分

注册会员

积分
108
发表于 2024-6-26 19:06:23 | 显示全部楼层
每日一回

0

主题

17

回帖

35

积分

新手上路

积分
35
发表于 2024-7-15 01:47:19 | 显示全部楼层
说得太好了,完全同意!
  • 打卡等级:无名新人
  • 打卡总天数:2
  • 打卡月天数:0
  • 打卡总奖励:36
  • 最近打卡:2024-06-14 18:01:34

7

主题

68

回帖

284

积分

中级会员

积分
284
发表于 2024-7-15 18:00:41 | 显示全部楼层
我想了解更多

0

主题

53

回帖

107

积分

注册会员

积分
107
发表于 2024-7-17 22:54:37 | 显示全部楼层
666666666666666666

1

主题

42

回帖

108

积分

注册会员

积分
108
发表于 2024-7-26 18:22:28 | 显示全部楼层
能给个链接吗?我想深入了解一下。

0

主题

49

回帖

99

积分

注册会员

积分
99
发表于 2024-8-28 06:43:39 | 显示全部楼层
谢谢你分享这个信息

2

主题

53

回帖

151

积分

注册会员

积分
151
发表于 2024-8-30 12:05:47 | 显示全部楼层
好用好用

1

主题

51

回帖

125

积分

注册会员

积分
125
发表于 2024-9-5 13:55:09 | 显示全部楼层
已测试,非常不错

0

主题

40

回帖

79

积分

注册会员

积分
79
发表于 2024-9-5 22:47:56 | 显示全部楼层
我不太确定,可能需要再确认一下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-24 10:30 , Processed in 0.099579 second(s), 26 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表