wordpress部署动静分离优化站点

前面我们讲过wordpress应用memcached加速站点,应用memcached缓存之后网站的速度就已经非常快了,但是光有缓存是不够的,当网站做到后期时,服务器压力就会增大,从而导致网站变得缓慢,我们给网站做好动静分离之后就可以极大的缓解服务器的压力。静态资源就是不需要服务器执行,只需用户浏览器执行的文件,比如html,css,js,图片视频音乐等这些都是我们网站当中的静态资源,动态资源就是需要服务器执行的文件,比如网站地图就是动态资源最简单的例子。网站做好动静分离对网站的稳定性和访问速度的提升都有非常不错的效果,总之,网站的内容越多越能感受到动静分离的效果

方法说明

常规方案需要单独购买一台服务器来存储静态资源,这样的动静分离方案当然更彻底,但是多台服务器之间的数据同步和日常维护都大大增加了我们网站的运营成本

本站分享的动静分离方案成本更低也更方便管理,分离前后服务器数量不变,使用CDN加速后使用与常规方案基本没有差别

新建站点反代到主站

我们需要创建一个二级域名反向代理主站,相当于和主站共享网站数据内容,二级域名的名称大家随意就好

新建站点

本站用的静态资源域名为ooo.honglog.com ,新建站点不必创建ftp和数据库

反向代理主站

反向代理配置如下,别傻愣愣的代理到我的网站哦,目标url填写你自己的网站域名,缓存开启不开启随意

静态资源站点部署vhost

找到静态资源站点的conf配置文件,比如我的静态资源域名是ooo.honglog.com ,那么conf文件的名称就是ooo.honglog.com.conf ,文件夹路径位于/www/server/panel/vhost/nginx ,然后点击编辑

部署静态资源配置

代码如下,本站是把本站正在使用的代码直接复制过来,大家自行更替主域名和二级域名

#
server
{
    listen 80;
	listen 443 ssl http2;
    server_name ooo.honglog.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/www.honglog.com;
  
    #从这里复制图片等静态资源请求代理到本地主站(关键配置)
      location ~* .*\.(js|css|webp|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的网站请自行修改为http://127.0.0.1
                proxy_set_header  X-Forwarded-For $remote_addr;
                proxy_redirect off;
                proxy_set_header Host www.honglog.com; # 这里改为实际主站域名(必须)
                expires max;                       # 设置浏览器304缓存为最长期限
        }
        #为这个二级域名额外设置一个robots文件
        location ~ (robots.txt) {
                rewrite /robots.txt /ooorobots.txt last;  #在主站根目录新增一个ooorobots.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.honglog.com$1 permanent; # www.honglog.com 修改为实际主站域名
            }
        }
    
    #复制到这里结束SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate    /www/server/panel/vhost/cert/ooo.honglog.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/ooo.honglog.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;

 
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    error_page 404 /404.html;
    error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    
 
	include enable-php-80.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/ooo.honglog.com.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    access_log  /www/wwwlogs/ooo.honglog.com.log;
    error_log  /www/wwwlogs/ooo.honglog.com.error.log;
}

 配置functions代码

找到主题文件夹内的functions.php 文件,插入下面代码即可替换主站静态资源开启动静分离,代码中域名请自行修改,需要替换的资源可自行添加(同时也要更新前面的vhost配置)

//wordpress CDN代码版BY 张戈博客
//原文地址:zhangge.net/4905.html
//网站开启动静分离
function QiNiuCDN(){
    function Rewrite_URI($html){
        $domain = 'www\.honglog\.com';   //填写主站域名,小数点前需要加上反斜杠转义
        $static = 'ooo.honglog.com'; //填写二级静态域名
        //更多静态资源需要替换,可以将后缀加到后面的括号,使用分隔符分割
        $html = preg_replace('/http(s|):\/\/'.$domain.'\/wp-([^"\']*?)\.(webp|jpg|png|gif|bmp|jpeg|css|js)/i','//'.$static.'/wp-$2.$3',$html);
        return $html;
}
    if(!is_admin()){
        ob_start("Rewrite_URI");
    }
}
add_action('init', 'QiNiuCDN');

 部署robots.txt

在主网站根目录新建ooo.robots.txt 文件,拒绝爬虫抓取网站动态资源,文件名请根据vhost配置的robots的文件名来命名,配置如下,一定要注意是放在静态资源站点根目录不要放在主站根目录

User-agent: *
Allow: /robots.txt
Allow: /wp-content/
Allow: /*.web*
Allow: /*.png*
Allow: /*.jpg*
Allow: /*.jpeg*
Allow: /*.gif*
Allow: /*.bmp*
Allow: /*.ico*
Allow: /*.js*
Allow: /*.css*
Disallow: /

总结

上述步骤做完之后你的wordpress站点就已经成功开启动静分离,你上传的所有静态资源都将会自动同步到静态资源站点并替换资源,这是一个比较经济的动静分离策略,想要追求最佳效果可以给静态站点添加一个CDN加速来达到最快,部署后你刷新网站鼠标放在图片上会发现你的图片url都变成了静态资源域名的url,看起就比较专业

号外号外

版权声明:
作者:HONG
链接:https://www.honglog.com/112.html
来源:小洪博客
本站遵循cc共享许可协议:BY-NC-SA 4.0 转载请注明出处
THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录