人生就是由众多的细节组成的
正因为是个细节,所以常被人所淡忘

Nginx下对WordPress进行简单的优化 wordpress优化集

最近由于硬盘容量不足问题,决定迁移到新服务器,简单梳理下毛桃博客在迁移的过程中遇到的一些问题。

WordPress 禁用 API 和 wp-json 的方法

WordPress 程序默认开启了API接口,这是方便在其他端能够轻松的获取网站的内容及数据,但一般的网站是不需要这些接口开放的,所以下面的操作能够简单禁用。

//WordPress 禁用 API
add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');

//WordPress 移除 wp-json
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );

将以上代码添加到主题的 functions.php 文件中即可生效。

WordPress开启 WP_DEBUG 调试模式

WordPress的调试模式也被成为开发者专用模式,开启后将显示所有用于开发的各种提示信息。如果网站已经发生了报错,且没有显示具体的报错信息和报错文件,那么开启调试模式后即可发现问题的具体所在,这可以排查一些主题和插件的兼容报错,也可以发现一些错误的代码导致了网站不可访问。
编辑网站根目录下的文件 wp-config.php,找到第80行附近的以下代码

define('WP_DEBUG', false);

将以上代码中的 false 改为 true,调试完毕或问题解决后还是要关闭掉调试模式,短暂开启是为了排查问题。

优化WordPress WP Super Cache 缓存插件

配置Wordpress wp Super Cache缓存插件Mod_Rewrite缓存模式下WordPress伪静态规则配置,配置后可绕过 PHP 直接由 Nginx 返回 HTML 页面,能大大提高网站的并发能力和速度。
这份规则如下,替换 WordPress 原本的伪静态规则即可(已修改同时兼容HTTPS/HTTP,并增加是否命中的 Nginx-Static 头)。

# WP Super Cache 规则

set $cache_uri $request_uri;
set $nginx_static 'BYPASS For File';

# POST 请求不读取缓存
if ($request_method = POST)
{
set $cache_uri 'null cache';
set $nginx_static 'BYPASS For POST';
}

# 查询请求不读取缓存
if ($query_string != "")
{
set $cache_uri 'null cache';
set $nginx_static 'BYPASS For Query';
}

# 特定页面不读取缓存
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)")
{
set $cache_uri 'null cache';
set $nginx_static 'BYPASS For URL';
}

# 特定Cookie不读取缓存
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in|woocommerce_items_in_cart|woocommerce_cart_hash|wptouch_switch_toogle")
{
set $cache_uri 'null cache';
set $nginx_static 'BYPASS For Cookie';
}

# 判断缓存是否存在
if (-f $document_root/wp-content/cache/supercache/$http_host/$cache_uri/index-https.html)
{
set $nginx_static 'HIT';
}
if (-f $document_root/wp-content/cache/supercache/$http_host/$cache_uri/index.html)
{
set $nginx_static 'HIT';
}

location /
{
try_files /wp-content/cache/supercache/$http_host/$cache_uri/index-https.html /wp-content/cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php?$args;
}

add_header Nginx-Static $nginx_static;
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

配置 Nginx 缓存策略,包括缓存类型、缓存文件名和缓存有效期等。这将有助于优化网站性能和减少服务器负载。

设置访问权限

ac5c75aed1f5ff4f6f81d1b5017611e1禁止访问/wp-json/wp/v2/users/,如果是宝塔的话,可以在网站配置或者伪静态中设置如下代码。

  location ~ ^/wp-json/wp/v2/users {
      deny all;
    }

禁止访问 /wp-includes/wlwmanifest.xml 和上面一样。代码如下:

      location ~ ^/wp-includes/wlwmanifest.xml {
      deny all;
    }
赞(2) 打赏
未经允许不得转载:毛桃博客 » Nginx下对WordPress进行简单的优化

评论 抢沙发

评论前必须登录!

 

实践是学习的最佳途径

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

了解更多看平潭

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册