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

 更新时间:2024年03月31日 08:52:46   投稿:wdc  
这篇文章主要介绍了利用Nginx反向代理功能自建CDN加速页面服务方法,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

一般我们选用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,若之前安装过的,重新安装一次,加上参数即可。

下载相关软件:

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.jb51.net levels=1:2 keys_zone=cache_one:200m inactive=30d max_size=5g;
proxy_temp_path /data/wwwroot/static.jb51.net/tmp;

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

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

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico|js|css)$ {
proxy_pass ;
proxy_redirect off;
proxy_set_header Host www.jb51.net;
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.jb51.net时,B站会先检查本地是否有缓存,若缓存存在则直接展示,若不存在则会访问www.jb51.net,将资源保存下来进行展示。

第三、网站程序配置

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

主站所有静态资源域名必须是static.jb51.net

static.jb51.net域名必须正确指向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(‘/wp-content/uploads/', ‘http://static.jb51.net/wp-content/uploads/', $html);
}
}

若本站安装有缓存插件,将缓存先清空一次,然后尝试打开网站,若uploads目录下所有静态资源均指向static.jb51.net域名,且访问正常,说明已经安装正常。

以上就是利用Nginx反向代理功能自建CDN加速页面服务的详细内容,更多关于利用Nginx反向代理功能自建CDN加速页面服务的资料请关注程序员之家其它相关文章!

相关文章

  • 在Nginx服务器下配置StartSSL和SSL的教程

    在Nginx服务器下配置StartSSL和SSL的教程

    这篇文章主要介绍了在Nginx服务器下配置StartSSL和SSL的教程,其中申请证书的步骤确实比较麻烦一些,不过出于安全考虑:p需要的朋友可以参考下
    2015-07-07
  • 详解NGINX如何统计网站的PV、UV、独立IP

    详解NGINX如何统计网站的PV、UV、独立IP

    做网站的都知道,平常经常要查询下网站PV、UV等网站的访问数据,这篇文章主要介绍了详解NGINX如何统计网站的PV、UV、独立IP ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • nginx日志配置指令详解

    nginx日志配置指令详解

    这篇文章主要介绍了nginx日志配置指令详解,nginx有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志,需要的朋友可以参考下
    2014-07-07
  • nginx结合keepalived实现高可用的完整步骤

    nginx结合keepalived实现高可用的完整步骤

    这篇文章主要给大家介绍了关于nginx结合keepalived实现高可用的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • Nginx配置之实现多台服务器负载均衡

    Nginx配置之实现多台服务器负载均衡

    这篇文章主要介绍了Nginx配置之实现多台服务器负载均衡,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • 详解nginx代理天地图做缓存解决跨域问题

    详解nginx代理天地图做缓存解决跨域问题

    这篇文章主要介绍了详解nginx代理天地图做缓存解决跨域问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 详解Nginx如何代理UDP连接

    详解Nginx如何代理UDP连接

    这篇文章主要为大家介绍了Nginx如何代理UDP连接的实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Nginx跨域设置Access-Control-Allow-Origin无效的解决办法

    Nginx跨域设置Access-Control-Allow-Origin无效的解决办法

    今天小编就为大家分享一篇关于Nginx跨域设置Access-Control-Allow-Origin无效的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 在Linux中查看Apache或Nginx服务状态的详细步骤

    在Linux中查看Apache或Nginx服务状态的详细步骤

    在Linux中,查看Apache或Nginx服务的状态通常涉及到使用系统管理工具或特定于这些Web服务器的命令,以下是如何查看Apache和Nginx服务状态的详细步骤,需要的朋友可以参考下
    2024-03-03
  • nginx使用nginx-rtmp-module模块实现直播间功能

    nginx使用nginx-rtmp-module模块实现直播间功能

    做的过程出现很多问题,环境其实就需要nginx就可以,然后就是在播放的问题,m3u8的格式,mac直接访问就支持,苹果系统原生H5支持m3u8,还有就是手机直接访问也支持!但是其他其他系统PC端不支持,尝试了好多都不行,最后终于找到了一个支持m3u8格式H5播放
    2017-10-10

最新评论

?


http://www.vxiaotou.com