WordPress如何秒秒秒加载?
都说Wordpress不卡,卡的是各种插件。然而面对有着“低配服务器杀手”之称的17CE,测一遍的结果还是凄惨红一片………看到到多大佬的博客打开的速度,啧啧啧,真就秒秒秒加载。而看看自己的,哎,惨不忍睹,数据基本为0的都拼不过别人家上百万的数据加载速度……
简单说明
- 服务器配置:阿里云轻量1C2G
- 环境:LNMP(基础)+Openresty(替换Nginx)+Redis+Memcached(两套缓存方案)
- WordPress插件:WPJAM Basic,Nginx Helper
环境搭建
基础环境搭建
需要搭建并测试好相关命令!
否则本文接下来的操作可能会出现一系列Error,详见:这篇文章
缓存拓展安装
Memcached拓展
进入lnmp主目录 ,执行:
#安装 memcached,选择 2
./addons.sh install memcached
Redis拓展
进入lnmp主目录,执行:
#安装redis
./addons.sh install redis
搭建Wordpress站点
- 直接使用lnmp命令
lnmp vhost add
建立站点,伪静态选择wordpress,然后记得创建数据库选y(后面安装需要用到)! - 站点创建完成后,进入站点根目录
cd /home/wwwroot/站点根目录名
,上传Wordpress的中文安装包到站点根目录。 - 同时
tar -zxvf 你的安装包包名
解压安装包,再用mv wordpress/* ./
将源文件移动到站点根目录下。 - 赋予站点访问权限:
chown www:www -R /home/wwwroot/站点根目录名
重要! - 最后直接访问你绑定的域名按提示进行安装(到填写数据库页面直接用刚刚创建站点时的数据库信息)。
修改站点配置文件
nano /usr/local/openresty/nginx/conf/vhost/站点配置文件名
最前面添加
upstream redis {
server 127.0.0.1:6379;
keepalive 512;
}
伪静态下方添加
在include rewrite/wordpress.conf;
下方添加:
点此查看被折叠的代码
#add--------------------------------------start
set $skip_cache 0;
#POST请求直接调用后端
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}
#不要缓存以下部分
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
set $skip_cache 1;
}
#不缓存登陆用户和最近评论的用户
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
}
location /redis-fetch {
internal ;
set $redis_key $args;
redis_pass redis;
}
location /redis-store {
internal ;
set_unescape_uri $key $arg_key ;
redis2_query set $key $echo_request_body;
redis2_query expire $key 14400;
redis2_pass redis;
}
#add-------------------------------------end
注释掉php
在前面添加井号,如:#include enable-php.conf;
,注释掉php配置文件,并于下方添加:
点此查看被折叠的代码
#add-------------------------------------end
location ~ [^/]\.php(/|$) {
set $key "nginx-cache:$scheme$request_method$host$request_uri";
try_files $uri =404;
srcache_fetch_skip $skip_cache;
srcache_store_skip $skip_cache;
srcache_response_cache_control off;
set_escape_uri $escaped_key $key;
srcache_fetch GET /redis-fetch $key;
srcache_store PUT /redis-store key=$escaped_key;
more_set_headers 'X-Cache $srcache_fetch_status';
more_set_headers 'X-Store $srcache_store_status';
#PHP版本号有出入的别弄错了
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
}
#add-------------------------------------end
重载Nginx配置文件
修改完Openresty的Nginx配置文件需要重新载入
#检查配置文件有无错误
nginx -t
#重载nginx配置文件
nginx -s reload
WordPress插件安装
首先确保你的站点www用户有足够的权限(否则后续安装插件可能会提示需要填写ftp账户),执行
chown www:www -R 你的站点根路径
然后访问你的域名/admin
登录后台,左侧点击插件,出来的右侧页面左上角点安装拓展,搜索Nginx Helper和WPJAM Basic,并安装这两个插件。
Redis缓存开启(Nginx Helper)
WP后台左侧点击插件,Nginx Helper下点击Settings, 勾选
要查看命中清空,可以在服务器里输入(需要安装telnet命令)
telnet 127.0.0.1 6379
info
info回车后,往上找keyspace_hits为命中缓存,keyspace_misses为缓存未命中。
退出telnet:quit
回车
Memcached配置缓存(WPJAM Basic)
接着将object-cache.php文件复制到wp-content文件夹下。进入网站根目录,启用强化拓展,执行
cp -r ./wp-content/plugins/wpjam-basic/template/object-cache.php ./wp-content
再次去点击WPJAM,下方选系统信息,可以看到Memcached缓存的详细信息。
最后
再去17CE测试一下吧,你会发现服务器cpu基本没在动,也不再是凄惨红一片了~
阅读剩余
版权声明:
作者:觉
链接:https://cimen.club/66.html
文章版权归作者所有,未经允许请勿转载。
THE END