找回密码
 注册账号
搜索
查看: 3269|回复: 0

[wordpress] 域名未备案使用国内CDN节点加速的方法

[复制链接]

755

主题

158

回帖

5568

积分

超级版主

积分
5568

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2020.4.22 17:43 | 显示全部楼层 |阅读模式
众所周知,要使用国内免费CDN加速自己的网站要求网站域名已备案
之前张戈分享了一个不用备案也可以用国内CDN的方法,前提是要准备个其他已经备案域名的二级域名
原理:服务器新增一个vhost绑定已经备案域名的二级域名对主站内容做反向代理(只代理静态文件),然后用这个已备案域名去接入CDN即可,实际上两个站用的是相同目录

今天对某个未备案域名的网站进行了部署,记性不好,记录一下步骤以备将来再次使用:

在你主网站的配置文件中加入以下配置文件


  1. #绑定一个已备案二级域名,反向代理静态资源,在这个反向代理上面套一层国内CDN,解决未备案无法使用国内CDN问题
  2. server
  3.     {
  4.         listen 80;
  5.         # HTTPS配置略
  6.         server_name static.beiandomain.com; # 改成你实际已备案的二级域名(这个就是新建主机时绑定的域名)
  7.         index index.html index.htm index.php default.html default.htm default.php;
  8.         root  /data/wwwroot/yourwebsitedomain.com; # 需要CDN加速的网站
  9.         # 图片等静态资源请求代理到本地主站(关键配置)
  10.         location ~* .*\.(js|css|png|jpeg|jpg|bmp|ico|ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|rss|atom|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
  11.                 add_header Access-Control-Allow-Origin *; # 解决字体跨站问题
  12.                 add_header Access-Control-Allow-Headers X-Requested-With;
  13.                 add_header Access-Control-Allow-Methods GET,OPTIONS;
  14.                 proxy_pass http://127.0.0.1; # 如果是启用了https的网站,这里最好改成 https://127.0.0.1,避免主站加了非https协议的跳转配置,导致不成功。
  15.                 proxy_set_header  X-Forwarded-For $remote_addr;
  16.                 proxy_redirect off;
  17.                 proxy_set_header Host yourwebsitedomain.com; # 这里改为实际主站域名(必须)
  18.                 expires max;                       # 设置浏览器304缓存为最长期限
  19.         }
  20.         # 为这个二级域名额外设置一个robots文件
  21.         location ~ (robots.txt) {
  22.                 rewrite /robots.txt /resrobots.txt last;  # 在网站根目录新增一个resrobots.txt,内容和七牛CDN类似,禁止搜索引擎抓取非静态资源(怎么写接着看下面)
  23.         }
  24.         # 如果通过静态域名访问的是非静态资源,比如访问了我们的文章页面,则跳到主站对应的页面。
  25.         location / {
  26.             if ( $request_uri !~* .*\.(js|css|png|jpeg|jpg|gif|bmp|ico|ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|rss|atom|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf))
  27.                 {
  28.                 rewrite ^(.*)$ $scheme://yourwebsitedomain.com$1 permanent; # yourwebsitedomain.com修改为实际主站域名
  29.             }
  30.         }
  31.         location ~ /\. { deny  all; access_log off; log_not_found off; }
  32.         access_log off;
  33. }
复制代码

根目录下新增一个resrobots.txt 内容如下:

  1. User-agent: *
  2. Allow: /robots.txt
  3. Allow: /wp-content/
  4. Allow: /*.png*
  5. Allow: /*.jpg*
  6. Allow: /*.jpeg*
  7. Allow: /*.gif*
  8. Allow: /*.bmp*
  9. Allow: /*.ico*
  10. Allow: /*.js*
  11. Allow: /*.css*
  12. Disallow: /
复制代码

在wordpress的functions.php文件中加入cdn代理设置

  1. function QiNiuCDN(){
  2.     function Rewrite_URI($html){
  3.         $domain = 'yourwebsitedomain\.com';   //填写主站域名,小数点前需要加上反斜杠转义
  4.         $static = 'res.zgboke.com'; //填写二级静态域名(使用第三方的CDN加速后,这里需要替换成你CDN的名字,而原来已备案的二级域名则为源站)
  5.         //更多静态资源需要替换,可以将后缀加到后面的括号,使用分隔符分割
  6.         $html = preg_replace('/http(s|):\/\/'.$domain.'\/wp-([^"\']*?)\.(jpg|png|gif|bmp|jpeg|css|js)/i','//'.$static.'/wp-$2.$3',$html);
  7.         return $html;
  8. }
  9.     if(!is_admin()){
  10.         ob_start("Rewrite_URI");
  11.     }
  12. }
  13. add_action('init', 'QiNiuCDN');
复制代码


您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

站点地图|童话镇

GMT+8, 2024.4.25 05:59 , Processed in 0.040222 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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