WordPress简单开启动静分离

我们的wordpress网站内容由动态和静态资源共同组成,常见的静态资源就是我们的图片,把网站做好动静分离有利于网站维护以及提升加载速度,话不多说我们直接开始教程
1.新建一个站点
img.你的域名.com或者oss.你的域名.com都可以
2.配置静态域名vhost文件
注意!是在原有的配置上添加此代码,不要直接覆盖,宝塔面板用户直接从#SSL-END下方即可,请将以下域名自行更换为自己的域名
配置如下:

# 图片等静态资源请求代理到本地主站(关键配置)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)$ {add_header Access-Control-Allow-Origin *; # 解决字体跨站问题add_header Access-Control-Allow-Headers X-Requested-With;add_header Access-Control-Allow-Methods GET,OPTIONS;proxy_pass https://127.0.0.1; # 如果是启用了 https 的网站,这里最好改成 https://127.0.0.1,避免主站加了非 https 协议的跳转配置,导致不成功。proxy_set_header X-Forwarded-For $remote_addr;proxy_redirect off;proxy_set_header Host www.hongnote.cn; # 这里改为实际主站域名(必须)expires max; # 设置浏览器 304 缓存为最长期限}

# 为这个二级域名额外设置一个 robots 文件

location ~ (robots.txt) {rewrite /robots.txt /imgrobots.txt last; # 在网站根目录新增一个 imgrobots.txt,内容和七牛 CDN 类似,禁止搜索引擎抓取非静态资源}# 如果通过静态域名访问的是非静态资源,比如访问了我们的文章页面,则跳到主站对应的页面。location / { 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)) {rewrite ^(.*)$ $scheme://www.hongnote.cn$1 permanent; # 域名 修改为实际主站域名}}

3.静态域名创建robots.txt文件
需要在静态域名网站根目录下新建一个robots.txt文件,防止搜索引擎从静态域名这里抓取静态资源以外的其它页面
配置如下:
User-agent: *
Allow: /robots.txt
Allow: /wp-content/
Allow: /*.png*
Allow: /*.jpg*
Allow: /*.jpeg*
Allow: /*.gif*
Allow: /*.bmp*
Allow: /*.ico*
Allow: /*.js*
Allow: /*.css*
Disallow: /
4.functions.php配置添加一下配置
请在主题函数文件functions.php中添加以下配置,按照注释将代码中域名换为自己的域名
代码如下:

function QiNiuCDN(){function Rewrite_URI($html){$domain = 'www\.hongnote\.cn'; //填写主站域名,小数点前需要加上反斜杠转义$static = 'img.hongnote.cn'; //填写二级静态域名//更多静态资源需要替换,可以将后缀加到后面的括号,使用分隔符分割$html = preg_replace('/http(s|):\/\/'.$domain.'\/wp-([^"\']*?)\.(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)/i','//'.$static.'/wp-$2.$3',$html);return $html;}if(!is_admin()){ob_start("Rewrite_URI");}}add_action('init', 'QiNiuCDN');

大功告成,重新打开网站你就会发现网站的图片已经由静态资源的域名提供了,方法原理为反向代理,最好配合CDN将静态资源的域名全部缓存,动静分离只是锦上添花的一个作用,想要网站加载速度还是要看缓存,在我其它帖子有写memcached和redis两种缓存方案,配合使用才能让网站速度达到最佳

 

WordPress简单开启动静分离插图

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容