WordPress极简博客 WordPress极简博客
  • 新鲜事
  • 战疫情
  • UI素材
    • UI素材
    • 电商/节日
    • PPT
      • 节日庆典
      • 工作汇报
      • 商业计划书
    • word
      • 简历竞聘
      • 合同/公文
  • 创客头条
    • 音乐分享
    • 初创文章
    • 极客头条
    • 生活趣事
    • 生活日记
    • 防骗指南
  • 编程教学
    • API日记
    • Linux安全栏目
      • Linux运维安全汇总
      • DDOS攻击防护
      • XSS攻击防护
      • SQL安全防护
    • Python技术栏目
      • Python基础入门
      • Python基础结构
    • WordPress技术栏目
      • WP主题
      • WordPress技术教程
      • RIPRO主题美化
    • WordPress漏洞发布
    • 技术教程汇总
    • 严选源码
  • 专题
  • 基友
  • 隐私
  • 注册
    登录
立即登录
  • 首页
  • 云优化
  • 新疫情
  • 新鲜事
    • 热文
    • 极客
    • 生活
  • 技术篇
    • WP主题
    • 技术教程
    • Python入门
    • Python基础
  • 专题篇
  • 友链君
首页 技术教程(干货) WordPress后台加载卡顿解决办法大全

WordPress后台加载卡顿解决办法大全

夏柔 3月 14, 2020
  1. 简单办法在没有主题加密的前提下,找到 外观 - 主题编辑器 - 模板函数Functions

将下面代码加上去可以有效解决后台卡顿

// 后台禁用Google Open Sans字体,加速网站

add_filter( 'gettext_with_context', 'wpdx_disable_open_sans', 888, 4 );
function wpdx_disable_open_sans( $translations, $text, $context, $domain ) {
if ( 'Open Sans font: on or off' == $context && 'on' == $text ) {
$translations = 'off';
}
return $translations;
}

原理:WordPress是美国人开发的,后台首次进入加载的是谷歌字体;中国对谷歌墙了,所以禁用谷歌字体可以加速


2.    WordPress极致加速-Nginx+WP Fastest Cache全静态化

在使用Nginx+WP Fastest Cache时,虽然页面做了缓存,但并不是真正的缓存,请求仍然需要通过PHP解析器来处理,最简单的验证方法时把网站目录的index.php修改个名字,网站就挂掉了。

网上有很多Wp Super Cache配置Nginx的例子,但是没有找到Wp Fastest Cache配置的例子,下面的配置可以使你的WP Fastest Cache达到真正的完全静态,(甚至PHP进程挂掉,网站依旧能正常运行)

location / {
      # 如果请求的文件已存在,直接返回
      if (-f $request_filename) {
          break;
      }
      set $caches 1;    #是否缓存
      set $request_file $document_uri;    #获取请求文件
      set $cache_file '';        #缓存文件
      #请求方式是POST的不拦截
      if ($request_method = POST) {
          set $caches 0;
      }
      #包含GET请求参数的不拦截(访问量高可以注释掉)
      if ($query_string) {
          set $caches 0;
      }
      # 指定静态缓存文件的路径
      if ($caches = 0) {
          set $request_file '';
      }
      if ($request_file ~ ^(.+)$) {
          set $cache_file /wp-content/cache/all/$1/index.html;    #你的WP Fastest Cache缓存目录
      }
      # 命中缓存
      if (-f $document_root$cache_file) {
          rewrite ^ $cache_file last;
      }
      # 无法命中缓存,转给WordPress来处理
      if (!-e $request_filename) {
          rewrite . /index.php last;
      }
}

接着看看,你的网站打开速度是不是快了好多好多。

如果想在header中检测是否生效了,就添加下面的代码:

location /wp-content/cache/all/ {    #这一行是你的WP Fastest Cache缓存文件路径
        add_header Cache HIT;        #添加header头,表示命中了缓存
}

原理上面已说明


3.   理论解决WordPress后台卡顿问题

最近一直想解决WordPress后台卡反应慢问题,情况基本是这样,登陆管理员账号到后台各种点击操作都反应非常慢,而且在登陆状态下访问前端页面也非常卡,非登陆用户访问前端页面流畅不受影响。

服务器环境:windows2008S2,apache2.4+php7.0+mysql-5.7

其他问题:用一段时间后httpd进程会占用过多内存,不定期出现CPU使用率100%,此时网站前端访问出现卡顿图片和JS加载缓慢出错,有时web服务错误等。

网上搜索“解决WordPress后台卡”,普遍把原因归结为google在线字体之类的原因,这些问题早就已经被各种优化插件解决,根本不存在!所以还是决定要从服务器环境上来解决!

WordPress后台加载卡顿解决办法大全-WordPress极简博客

解决方法一、优化apache

1、http-mpm.conf设置

Apache的线程数控制文件为http-mpm.conf,在conf/exrtra目录下面,要使该配置文件起作用需要在httpd.conf中将 Include conf/extra/httpd-mpm.conf前#去掉,以使得http-mpm.conf生效。

在Windows系统中,起作用的是Winnt mpm段

<IfModule mpm_winnt_module>
ThreadsPerChild      150
MaxConnectionsPerChild    0
</IfModule>

以上是默认的配置,一般情况下够用了,但负荷较大的网站就需要修改了,否则访问网站会变慢或没有响应。实际设置中可以根据apache-status查看apache实时连接状态,查看其中线程占用数目情况来进行相应的调整,我的服务器最后设置如下:

<IfModule mpm_winnt_module>
ThreadsPerChild 500
MaxRequestsPerChild  10000
</IfModule>

其中ThreadLimit是占用系统线程数限制,修改后会在apache-status中直接看到效果,就是对应的最大的可用线程数。

MaxRequestsPerChild 是进程的最大的请求数目,既指网站收到请求的缓存数。设置太小了会影响服务器性能,因为会占用较多cpu时间,太大了则会占用内存资源。一般大型的网站文件个数都是成千上万,所以管理员应该根据网站情况自己设定,只要不为0(无限制)就可以,以防止内存溢出。

ThreadsPerChlid是Apache进程的子线程数,意思是服务器开了这么多的线程数来等待响应客户端请求。该参数需要根据apache-status实时的监控情况来调节,太大会导致内存增长过快,直到服务器当机,太小会导致服务器连接队列在高峰期时占满,从而导致网站连接慢。同时我们应该修改另一个配置文件httpd-default.php中的超时设置来配合这个参数。

2、httpd-default.conf设置

在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效。我们需要调节以下参数:

Timeout 15

该参数为连接超时,默认的300秒显然太大,缩小该参数就会减少同时连接数,即用户实际占用的线程数,这样就可以起到配合上面ThreadsPerChlid参数的作用。

KeepAlive On

该参数为是否保持活连接,目前网站中一个页面一般会包含多个文件,所以相应用户访问时会有多个请求,因此开启可以提高服务器性能。(有人说keepalive在windows下开了没效果)

MaxKeepAliveRequests 50

该参数为最大的活连接请求数,可以根据网页实际包含的文件数目自行调节。

3、httpd.conf设置

#AcceptFilter http none
#AcceptFilter https none

3、修改为

AcceptFilter http none
AcceptFilter https none

httpd.conf中默认添加了这个配置只是注释掉了,我们去掉#号,开启配置。

此处可以解决某些浏览器导致apache慢或者假死不响应的情况,提高兼容性。

这样设置后,Apache在响应请求和防止恶意攻击方面就取得较为平衡的效果,当然由于内存回收机制和进程管理不同,Windows下长期运行Apache还是不如Unix稳定,因此我们可以让Apache在每天凌晨访问人数少时自动重启一次,以回收资源。

解决方法二、优化mysql

修改mysql文件夹下面的[code]my.ini[/code]文件再重启服务,发现排除故障时还是查看一些案例解决的最有参考价值,以下都是修改[code]my.ini[/code],如果你的my.ini中查询没有的话可以直接添加进去

#取消文件系统的外部锁

skip-locking

#不进行域名反解析,注意由此带来的权限/授权问题

skip-name-resolve

#索引缓存,根据内存大小而定,如果是独立的db服务器,可以设置高达80%的内存总量

key_buffer = 512M

#连接排队列表总数

back_log = 200

max_allowed_packet = 2M

#打开表缓存总数,可以避免频繁的打开数据表产生的开销

table_cache = 512

#每个线程排序所需的缓冲

sort_buffer_size = 4M

#每个线程读取索引所需的缓冲

read_buffer_size = 4M

#MyISAM表发生变化时重新排序所需的缓冲

myisam_sort_buffer_size = 64M

#缓存可重用的线程数

thread_cache = 128

 #查询结果缓存

 query_cache_size = 128M

#设置超时时间,能避免长连接

set-variable = wait_timeout=60

重点在哪里很容易看到吧,红色的红色的!!!!!

重启刷新了几次,终于快了起来,还是缓存管用啊! WordPress后台也不在卡了,瞬间流畅起来。前所未有的舒畅~~~~

最后,有条件和能力的最好还是在linux下使用apache,windows还是IIS好一些,不过很有趣啊~


4.   浅谈解决wordpress解决办法

wordpress 功能强大、扩展性强,这主要得益于其插件众多,易于扩充功能,基本上一个完整网站该有的功能,通过其第三方插件都能实现所有功能。WordPress 有强大的社区支持,有上千万的开发者贡献和审查 WordPress,所以 WordPress 是安全并且活跃的。由于静态化较差,确切地说是真正静态化做得不好,所以在访问后台的时候 WordPress 会加载很多接口信息。当你登陆 WordPress 后台的时候,它会连接 WordPress 官方接口,获取程序更新,主题更新,插件更新,语言包更新等,由于 WordPress 官方服务器在国外,所以说国内用户访问加载极其缓慢,有时候直接假死。我们需要做的就是屏蔽掉无用的后台查询功能,把以下代码添加到你当前主题目录下的函数文件 functions.php 中:

//去除后台没必要的功能  
function disable_dashboard_widgets() {   
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');//近期评论   
remove_meta_box('dashboard_recent_drafts', 'dashboard', 'normal');//近期草稿  
remove_meta_box('dashboard_primary', 'dashboard', 'core');//wordpress博客   
remove_meta_box('dashboard_secondary', 'dashboard', 'core');//wordpress其它新闻   
remove_meta_box('dashboard_right_now', 'dashboard', 'core');//wordpress概况   
remove_meta_box('dashboard_incoming_links', 'dashboard', 'core');//wordresss链入链接   
remove_meta_box('dashboard_plugins', 'dashboard', 'core');//wordpress链入插件   
remove_meta_box('dashboard_quick_press', 'dashboard', 'core');//wordpress快速发布   
}   
add_action('admin_menu', 'disable_dashboard_widgets');  
//移除 WordPress 加载的JS和CSS链接中的版本号  
function wpdaxue_remove_cssjs_ver( $src ) {  
if( strpos( $src, 'ver=' ) )  
$src = remove_query_arg( 'ver', $src );  
return $src;  
}  
add_filter( 'style_loader_src', 'wpdaxue_remove_cssjs_ver', 999 );  
add_filter( 'script_loader_src', 'wpdaxue_remove_cssjs_ver', 999 );  
//移除自动保存  
wp_deregister_script('autosave');  
//移除修订版本  
remove_action('post_updated','wp_save_post_revision' );  
//后台禁用Google Open Sans字体,加速网站  
add_filter( 'gettext_with_context', 'wpdx_disable_open_sans', 888, 4 );  
function wpdx_disable_open_sans( $translations, $text, $context, $domain ) {  
if ( 'Open Sans font: on or off' == $context && 'on' == $text ) {  
$translations = 'off';  
}return $translations;  
}

5.   关于服务器厂商选择

由于wordpress占用CPU使用率较高,所以服务器厂商一定要选择大型品牌,才能承受多人访问压力较低等问题

购买服务器首选腾讯云 阿里云 百度云 三大厂商

请用户以自身消费能力定夺购买方案

规模说明:实用收藏

方案一: 用户 1~10 wordpress / 其他网站   阿里云ECS服务器推荐 1H2G5-10M

方案二: 用户 10~50 wordpress / 其他网站 阿里云ECS服务器推荐 4H4G10-20M

方案三: 企业 50~无上限 wordpress / 商业性质 阿里云ECS服务器推荐 32H16G50~100M

方案一: 若单个用户单个网站占用资源较多,建议升级服务器

方案二: 若单个用户承受不起消费能力或空闲资源较多,本站站长建议降低服务器配置

方案三: 老板请自行定夺

5031
等 5031 人赞过
J2dcg1.png
猜你喜欢
  • Nginx添加跨域限制规则
  • 使用测速脚本对国内Linux服务器进行测速
  • 域名爆破之自动化信息收集脚本
  • 利用免费接口实现国家开放大学刷网课脚本
  • RiProV2定制导航条
  • 判断是否在微信浏览器打开
  • 微信内自动播放音频非百度方案
  • 利用veImageX加速您的网站,想不快都难!
  • SWAPIDC减少注册信息及防刷注册量教学
  • Python实现定时发送每日早报及生活指数
26 5月, 2020
手机赚钱软件_手机赚钱方法_手机赚钱软件大全-赴梦手赚网
夏柔
站长
夏山如碧 - 怀柔天下
1683
文章
25
评论
58145K
获赞
版权声明

文章采用创作共用版权 CC BY-NC-ND/2.5/CN 许可协议,与本站观点无关。

如果您认为本文侵犯了您的版权信息,请与我们联系修正或删除。
投诉邮箱wpsite@aliyun.com

栏目推荐
Python基础入门33
WordPress技术教程267
前沿技术情报所22
城市创新——新消费11
最近有哪些不可错过的热文23
程序员的养生之道0
节
春
  • 新鲜事
  • 疫情实况
  • UI素材
  • 技术教程
  • 音乐分享
  • 专题
  • 友情
  • 隐私
  • 云优化
Copyright © 2019-2025 WordPress极简博客. Designed by 夏柔. 辽公网安备21010502000474号 辽ICP备19017037号-2