详解用Nginx搭建CDN服务器方式(图文)

极速动力2年前帮助253

借助nginx搭建缓存服务器一:编译

1、NGinx的是按照Key值md5哈希储存缓存,支持任意的Key,比如你可以依据”域名、URI、参数”组合成key,也支持非200状态码,如404/302等。

2、要借助Nginx的,你须要在Nginx编译进模块,执行:nginx-V,查看有没有字样,没有的话须要自己自动编译。

Nginx搭建cdn自动编译

3、这里以编译模块作为操作演示,假如你用的是其它的LNMP包可以参考,基本过程是差不多的。命令如下:

  cd /root/oneinstack/src #进入安装目录  nginx -V  tar xzf nginx-1.10.3.tar.gz #根据上面查看到的nginx版本选择解压包    wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz  tar zxvf ngx_cache_purge-2.3.tar.gz  cd /root/oneinstack/src/nginx-1.10.3    # 下面的./configure 后加的参数,你可以直接复制刚刚用nginx -V得到的参数,然后在最后加上–add-module=../ngx_cache_purge-2.3即可,参考:  ./configure –prefix=/usr/local/nginx –user=www –group=www –with-http_stub_status_module –with-http_v2_module –with-http_ssl_module –with-http_gzIP_static_module –with-http_realip_module –with-http_flv_module –with-http_mp4_module –with-openssl=../openssl-1.0.2k –with-pcre=../pcre-8.39 –with-pcre-jit –with-ld-opt=-ljemalloc –add-module=../ngx_cache_purge-2.3    make    mv /usr/local/nginx/sbin/nginx{,$(date +%m%d)}  cp objs/nginx /usr/local/nginx/sbin #oneinstack,其它的可以不用这个操作    nginx -t  service nginx restart

4、安装完成后,再度nginx-V你就可以看见Nginx早已成功编译进了了。

二、利用Nginx的搭建缓存服务器二:更改Nginx配置文件

1、先找到你的Nginx配置文件:nginx.conf(路径通常是在/usr/local/nginx/conf/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/pic.freehao123.com levels=1:2 keys_zone=cache_one:200m inactive=30d max_size=5g;  proxy_temp_path /data/wwwroot/pic.freehao123.com/temp;

2、操作如右图:

3、然后在你的虚拟主机的nginx.conf(路径通常是/usr/local/nginx/conf/vhost/.conf),在80和443sslhttp2都加入下边命令:

  location /{  proxy_pass https://www.freehao123.com;  proxy_redirect off;  proxy_set_header Host www.freehao123.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;  }

4、将配置文件保存重新上传,之后执行:

  nginx -t  service nginx restart

5、先执行检测Nginx配置是否正确,确认没有问题的就是重启Nginx了。

6、如果你想缓存头像,这么代码就是:

  location /avatar{  proxy_pass http://cn.gravatar.com;  proxy_redirect off;  proxy_set_header Host cn.gravatar.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;  }

7、现在打开你的二级域名:,你就可以看见早已正确缓存了图片了。

8、这里再给出另一个Nginx缓存代码,实现疗效和前面是一样的。

  #先在Nginx配置中写入以下命令:  proxy_temp_file_write_size 128k;  proxy_temp_path /data/wwwroot/pic.ucblog.net/temp;  proxy_cache_path /data/wwwroot/pic.ucblog.net levels=1:2 keys_zone=cache_one:500m inactive=7d max_size=5g;    #再在虚拟主机的Nginx配置中写入以下命令:  先在server listen 80 和listen 443代码前面加入:  upstream gravatar {  server secure.gravatar.com:443;  }  #再在server listen 80 和listen 443 里面加入:  location / {  proxy_pass_header Server;  proxy_set_header Host cn.gravatar.com;  proxy_set_header Accept-Encoding ”;  proxy_redirect off;  proxy_set_header X-Real-IP $remote_addr;  proxy_set_header X-Scheme $scheme;  proxy_pass https://gravatar;  proxy_cache cache_one;  proxy_cache_valid 200 304 365d;  proxy_cache_key $host$uri$is_args$args;  expires max;  }

9、在vps主机上,你可以听到生成的哈希文件,就表示缓存早已成功了。

三、利用Nginx的搭建镜像服务器:更改Nginx配置方式

1、Nginx的作用是直接把静态文件在本地硬碟创建并读取,类似于七牛或则又拍这样的镜像CDN功能,首次访问会手动获取源站的静态图片等文件,然后的访问就是直接从CDN服务器读取,推动了速率

2、直接更改Nginx的虚拟主机配置文件(这儿以.conf为演示),加入以下代码:

  location / {  expires 3d;  proxy_set_header Accept-Encoding ”;  root /data/wwwroot/img.freehao123.com;  proxy_store on;  proxy_store_access user:rw group:rw all:rw;  proxy_temp_path /data/wwwroot/img.freehao123.com/temp;  if ( !-e $request_filename) {  proxy_pass https://www.freehao123.com;  }  }

3、再次保存配置上传,之后重启Nginx。你可以看见恳求的图片等静态文件早已成功从源站中获得到了。

4、在VPS主机上的存目录中也可以见到早已完整地将图片等静态文件的目录都保存出来了,相当于一个网站的镜像储存CDN了。

5、这里还有一个使用,疗效和前面是一样的,记得替换好路径,代码如下:

  upstream http_tornado {  server www.freehao123.com:443;  }    server {  # 省略其他配置  location ~ .*.(gif|jpg|jpeg|png|bmp|swf|js|html|htm|css)$ {  root /opt/data/product/blog/cache;  proxy_store on;  proxy_store_access user:rw group:rw all:rw;  proxy_temp_path /opt/data/product/blog/cache;  if ( !-e $request_filename) {  proxy_pass http://http_tornado;  }  }  }

四、Nginx的和有哪些区别

1、镜像与缓存的区别。从里面的介绍我们也可以看下来,相当于镜像一个网站了,第二次访问图片等静态文件是直接读取CDN服务器上的,大大减少了源站的负担。相当于缓存,即把恳求生成Key,第二次访问就可以推动速率了。

2、适合静态,适宜动态。是将图片完整保存在CDN服务器上,所以它更适宜于图片CDN加速,而是缓存生成Key,愈发适宜动态网站加速,可用负载均衡,减少服务器负担。

五、搭建镜像CDN服务器后要做的事情?

1、第一,由于搭建镜像CDN服务器是完整地复制了源站的文件和url,所以为了防止被搜索引擎误觉得剽窃重复站,我们可以给CDN站加上.txt,制止搜索引擎收录。命令如下(容许收录图片,其它不容许爬取):

  User-agent: Baiduspider  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: 360Spider  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: Baiduspider-image  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: 360Spider-Image  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: Sosospider  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: sogou spider  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: YodaoBot  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: Googlebot  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: Bingbot  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: Slurp  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: MSNBot  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: googlebot-image  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: googlebot-mobile  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: yahoo-blogs/v3.9  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: psbot  Allow: /wp-content/uploads/*.jpg$  Allow: /wp-content/uploads/*.png$  Allow: /wp-content/uploads/*.gif$  Disallow: /    User-agent: *  Disallow: /

2、第二,做好Nginx防盗链。假如你的CDN服务器流量不怎样够的话,建议还是做好防盗链举措,同时还可以帮你减少服务器负担。在你的虚拟主机配置文件中加入以下代码:

  location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$  {  valid_referers none blocked freehao123.com *.freehao123.com *.google.cn *.google.com *.google.com.hk image.baidu.com *.baidu.com;  if ($invalid_referer) {  rewrite ^/ https://www.freehao123.com;  #return 403;  }  }

3、第三,设置好Nginx默认图片。这个主要是针对缓存头像的,当源站服务器不存在某一个图片或则文件时,我们可以给Nginx设置一个默认的图片或则链接,这样缓存看上去就完美了。

  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/pic.freehao123.com levels=1:2 keys_zone=cache_one:200m inactive=30d max_size=5g;  proxy_temp_path /data/wwwroot/pic.freehao123.com/temp;0

4、效果见右图:

到此这篇关于解读用Nginx搭建CDN服务器方式(图文)的文章就介绍到这了,更多相关Nginx搭建CDN服务器内容请搜索好主机原先的文章或继续浏览下边的相关文章希望你们之后多多支持好主机!

相关文章

5分钟搞定 AlertManager 接入短信、语音等10+种通知渠道

SLS告警管理 作为生态系统的一员,提供了包括沉静、抑制、通知在内的多种告警管理服务。同时在实际使用中还存在着或多或少的不足,比如通知渠道过少,规则配置过程冗长。 阿里云日志服务为了解决告警的通知、管...

云主机购买指南

如何购买真正的云主机?01.购买技巧如果你还没想好要买云主机,那么这篇就当是入门指南,重点讲讲怎么样买一台真正的云主机。假如我们想开发一个项目,我们需要用到,那么这时就需要购买一台容器。如果只是为了虚...

服务器是哪些?

服务器是哪些?相信不仅程序员外大部份人都不太了解,明天小编为了让你们愈发了解服务器,给你们总结了以下内容,追随小编一上去瞧瞧吧。 从广义上讲,服务器是指网路中能对其它机器提供个别服务的计算机系统。从狭...

手机端游戏服务器租用怎么选择

去年最流行的手游莫过分“王者荣耀”,还有最知名的高中生玩者梗,说明该游戏普及度之高。凭着其竞技游戏,快节奏的对局设定,满足了大部份人群的娱乐时间碎片化的问题。不仅这种现象级游戏,更多的是一些大型的游戏...

谈足18个月,投资100亿的百度项目定了

撰文|江珊 来源|选址960 1514字,约需4分钟 历经18个月的洽谈对接,佛山总算抱得美人归。 2020年9月2日,容桂区人民政府与百度签订投资合作合同,百度云估算(佛山)中心项目即将落地。据披露...

服务器攻击防护大比拼

服务器攻击防护比赛比的不是渗透安全比的是渗透防护能力百度防护一楼说的挺好。第一,打100个亿个服务器app第二,打1000个女装男客户端第三,打1个帅哥程序员目的就是为了拿第一 我只谈谈渗透过程中常用...