wordpress程序应用经验与心得

20字数 1247阅读模式

上文说了刚入手了阿里云2H2G3M小鸡,就立马把博客和另一个只有框架的站搬了过来。但搬过来后发现CPU经常飙红,且内存经常处于60%左右,这让我很不踏实,因为网站随时会403。水管小只能想办法节流,于是从服务器的缓存和wordpress的优化着手。折腾了两天,速度上终于有了点进步,服务器运行也较稳定,所以把这两天的经验和心得记录下,方便自己也方便博友。

为了提高性能最大可能的缓存和静态化,但着导致了一个明显的不良后果,那就是评论可能失败,且失败时可能导致CPU高负载。关于这个问题的原因还没有找到,后面再慢慢琢磨。如果网站不需要评论功能的话,那目前的方案应该比较完美。

 

服务器

1、环境nginx1.24+php8.1+MySQL5.7;

2、MySQ开缓存;

3、php装memcached,并且开启opcache缓存;

opcache缓存于memcached

4、很多wordpress的502错误都和php-fpm及nginx.conf配置有关,性能允许的情况下尽量设置的大一些;

上面两个设置中timeout我都设置成了300S

5、安装nginx防火墙或其他防火墙;

 

wordpress

1、对wordpress文件进行权限设置;

  •     根目录.htaccess、nginx.conf、wp-config.php三个文件设置444
  •     其他根目录文件644
  •     其他文件夹全部755,里面的文件644

2、选择一个靠谱的模板,并关掉模板中所有特效功能;

3、去掉了百度统计,引入统计要加载他们的JS,白浪费客户端流量;

4、安装W3 Total Cache静态缓存插件;

插件设置比较繁琐,最关键的是对页面进行缓存,且所有的缓存都存于memcached。目前对页面的缓存设置为1小时,更新、评论后自动刷新。页面缓存后无法用自带的评论系统,所以需要用ajax评论。

W3 Total Cache能够设置不同类型文件的缓存头,但太复杂了没有耐心研究,对钻研能力强的人来说这个插件有很强的可玩性。

 

CDN

1、设置静态文件缓存,关闭动态缓存,不熟悉的情况下动态缓存问题比较多;

2、/wp-admin/文件夹不缓存、html文件缓存10分钟,其他类型缓存时长随意;

3、页面优化中中的html、css、js优化都没有开,开了有错误,无法排除;

4、过滤参数(和上面的html缓存是加速的关键);

原来没有注意,很多静态资源后面都带了参数,每次加载参数都变化,所以不能缓存,设置过滤参数后缓存命中率大大提高。但需注意看日志,如果开启参数过滤后网站运行错误太多就要关闭,否则服务器可能崩溃。

 

以上设置完之后缓存效果很明显,但同时也舍弃了wordpress动态程序的优势,鱼与熊掌不可兼得。买不起较强的服务器,且想要保证加载速度只能牺牲动态功能了。

 

配置过程中踩的坑

1、开启CDN参数过滤后原本带参数的资源会出现错误,因为页面路径中的参数和CDN返回的不同,这样会导致网站报错,数量太大时会让CPU飘红。最后的方案是图片所在目录二级域名过滤参数,其他资源不过滤。

2、关闭TLSv1.1后部分资源报错,导致服务器爆内存,产生502错误,打开TLSv1.1后恢复正常。

3、开防火墙后,设置CC规则,但阿里CDN默认返回的是CDN本身IP,而不是访客的真实IP,这会导致访客访问错误全部累积到CDN IP上,从而CDN IP很快就会被封,页面显示502错误。尤其是首页,因为加载的变量较多,很容易502错误。解决方法如下:

在nginx配置文件中加入下面代码

set_real_ip_from 0.0.0.0/0;

real_ip_header X-Forwarded-For;

4、在查找502和403错误的过程中,一度怀疑是主题和nginx版本不兼容,因此关闭了主题的很多不常用功能,后来发现不是主题的锅。但关闭后页面更轻巧了,似乎也不影响博客的写作本质,所以就真的关闭了。得出经验,尽量让博客轻巧,少用花哨的功能。

 


题外

腾讯云的2H4G5M轻量云三年756元似乎也不错,考虑再入一台。用了十几年wordpress,到现在越来越认为wordpress的很多问题都是服务器性能问题,如果服务器够强大,那就不用再折腾wordpress。如果法律允许在家里架设服务器,如果家庭带宽能够公网访问,那wordpress似乎会更好玩。

本站文章授权后方可转载,请勿侵权! 如喜欢可点击分享按钮分享。

 
评论  20  访客  12  作者  8
    • 飞牛
      飞牛 3

      我的服务器在祖国HK,是用的redis+wp rocket,然后图片用+cdn。缓存的话对评论没有什么影响,自己折腾了评论异步邮件提醒。目前感觉还行。

        • 水拍石
          水拍石

          @ 飞牛 感觉香港和大陆服务器的速度也差不多,不说都感觉不出来。评论异步邮件提醒我看你那个帖子了,但是还是不明白有什么用,或者说不知道异步的功能是什么。

            • 飞牛
              飞牛 3

              @ 水拍石 如果你设置了评论发邮件提醒你,默认情况下,该操作和点击提交同时执行。只有在邮件发送成功后,系统才能提示用户成功评论。在一些主机上,邮件发送相对较慢,导致用户等待时间较长。不过目前知更鸟的主题是ajax评论,不存在这个问题,所以异步邮件作用不大。

          • 老达
            老达 5

            刚看了一下腾讯云的双11活动,2核2g3m只要88一年。

            • 老达
              老达 5

              老达博客开始用的阿里云,现在用的腾讯云轻量应用服务器,2核4G8M,跟之前的腾讯云1核2G的感觉没有什么区别。。

                • 水拍石
                  水拍石

                  @ 老达 1核2G正常访问也没有问题,但如果访问稍微有点多可能就会卡顿,比如有人用站长工具给你测速时。但小博客其实也没有什么并发,并发超过10的时候都比较少。

                • 老麦
                  老麦 7

                  WordPress 要这么高配置?不应该啊,以前我用 1C1G 的小鸡不照样跑得很好啊。
                  CPU 红了?难道这个服务器的 U 很垃圾的?我这几天玩游戏,域名备案,都还没折腾新买的服务器呢。内存会满么?你以前的服务器多大配置的?如果这个 2C2G 你用会 C 红,那么轻量的 2C4G 感觉也够呛!

                    • 水拍石
                      水拍石

                      @ 老麦 应该是我配置的缓存太多,占用了空间,且给php-fpm配置的进程数量太多,这些配置都是从原来4H8G5M的配置中复制过来的,485没有问题,但223就有问题。昨天调整了php-fpm配置,感觉好像正常了。还有在配置CDN的过程中应该有错误,导致了数据不断回源,评论时错误也会导致不断重复提交使得CPU占用满。如果只动态跑,不折腾的话应该1C1G 也能跑,一切都是折腾的结果。
                      轻量 2C4G应该也好不到哪里去,内存应该是实打实的,U据说只能跑到正常云60%左右的性能。

                        • 老麦
                          老麦 7

                          @ 水拍石 哦,的确php的配置是要根据服务器的配置来设置的,CDN这一方面我一直不太懂,主要是我很少用,哪怕是用也只用来加速静态资源(图片),一般来说这已经足够了。像你这样连评论都加入了缓存,我是真的不懂,哈哈哈,有空请教一下你这一方面的知识。总之慢慢调试吧,我是觉得2C2G跑Wordpress是不会有问题的。
                          多嘴提一句,既然你用的是NGINX,.htaccess这个阿帕奇的产物怎么会出现的?

                            • 水拍石
                              水拍石

                              @ 老麦 我用wordpress十三年了,一直是升级,中间还不断地折腾,所以里面的垃圾文件很多;搬家都是把整个站和数据库复制过来的,所以.htaccess到底是历史遗留,还是nginx伪静态会重新生成,我也没有注意过。CDN能缓存页面是因为W3这个静态插件把页面变成静态的了,和你用的静态博客差不多。但这样设置有很多问题,比如评论,阅读计数等都有问题。但为了速度,这些不足都忍了;技术达人都可以在页面静态化的前提下把该动的继续保持动态,但我不会折腾,也不想折腾了。目前W3对页面的缓存是1小时一刷新,有评论会自动刷新;CDN端是10分钟一刷新;所以评论后最多10分钟就会刷新。

                                • 老麦
                                  老麦 7

                                  @ 水拍石 不得不说wordpress要玩得溜还是很花心思的,显然我对此并不怎么在行。这段时间放下折腾与学习这么久,等域名备案通过了,计划也将博客转移到新服务器上提提速。

                                    • 水拍石
                                      水拍石

                                      @ 老麦 你动手能力强,且对服务器这块有很多经验,折腾起来应该很容易。

                                • 老麦
                                  老麦 7

                                  @ 水拍石 刚去搜了一下,看来我以前一直有一个误区,以前用虚拟主机,主机使用阿帕奇,然后在根目录上都会有一个.htaccess这个文件来设置跳转或者伪静态,因此我就以为这是阿帕奇专用设置,刚查了并不是这样子的。

                              • 拾风
                                拾风 6

                                难怪这2天都是403~估计都是CPU飙爆了~话说你优化后访问速度还行,挺成功。

                                  • 水拍石
                                    水拍石

                                    @ 拾风 后续如果还403或其他不能访问,记得告诉我一声,我再找原因。

                                  • 夕格树洞
                                    夕格树洞 5

                                    近两天访问你网站至少出现4次无法访问,看到你的文章,说明问题已解决了

                                      • 水拍石
                                        水拍石

                                        @ 夕格树洞 好没好我真不知道,后续如果还无法访问你告诉下我,我再慢慢折腾。如果实在不行就换个服务器,现在CPU动不动就红,找不到原因。

                                      • 威言威语
                                        威言威语 5

                                        现在也算是熟能生巧了,我的还没有来的及配置。
                                        之前我用的 WP Fastest Cache的收费版 WP Fastest Cache Premium,挺好用的,功能很齐全。不过缓存版本的始终用着不太爽。

                                          • 水拍石
                                            水拍石

                                            @ 威言威语 不缓存加载慢感觉更不爽,缓存了各种问题接着折腾,这就是博客人的乐趣。十几年踩坑过来,就像你说的已经熟能生巧了,希望配置后有一个稳定的环境,能够静心的记录,不用太折腾。

                                        匿名

                                        发表评论

                                        匿名网友

                                        拖动滑块以完成验证