优化方案介绍
整个优化方案分为 3 篇文章,争取写个由简入深的介绍,希望没有技术背景的站长都能看懂:
- 第一篇介绍加速的原理(本篇也就是第一篇了)
- 第二篇介绍加速插件 W3 Total Cache
- 第三篇介绍 MySQL 的优化
一、主机选择
由于本篇是整体优化,所以必须要能配置主机 PHP 、 Nginx、MySQL 这些相关软件,所以,这篇文章是按照此类主机写的,如果您的主机不能配置这些,那么也可以看看相关原理,再自己动手想办法进行优化。
二、软件环境的选择
64 位 CentOS、Nginx、PHP-FPM、APC、Memcached、MySQL,这里介绍一下 Nginx、PHP-FPM、APC、Memcached 这 3 个是什么。
PHP-FPM 可以理解成单独的 PHP 服务器,简单的理解就是如果你使用了 PHP-FPM,那么你的 PHP 脚本就不必和 Web 服务器放置在同一个服务器上,而且支持负载均衡。一个 Nginx 可以和多个 PHP-FPM 服务器协同工作。
APC 是 PHP 缓存工具。PHP 每次处理请求都会要重新编译源代码,APC 就是负责把编译好的执行文件存储再内存中,下次调用的时候就不必再重新编译了,极大提高了访问速度。
Memcache 也是一个内存工具,它的主要作用是将一些静态化的内容存储再内存里面,这样当下次用户访问时,不必读取硬盘,访问速度自然大大加快。Memcache 可以用来存储 Session。具体安装方法请看:VPS 安装 Memcached 对象缓存 为 WordPress 再提速!
3、 WordPress 缓存插件的选择
我选择了臭名昭著的 w3totalcache。此插件的配置很麻烦,不是最有效的。我选择它的原因和它的名字一样,它集成了所有的功能。强烈建议百度在安装该插件之前了解如何卸载该插件。此外,在晚上无人时配置它。还有时间来解决这个问题。
4、 加速原理
1.使用 APC 缓存 PHP 文件可以大大提高网站的响应速度,尤其是在后台,响应速度几乎为秒。安装 APC 后,打开/etc/php.d/APC
扩展=APC。因此//介绍 APC 模块 APC。Stat=off//关闭文件检查。默认值为 onapc.shm u; Size=128M//内存大小。通常,128M 是 WordPress 的合适尺寸。APC。TTL=7200//缓存时间 apc.user TTL=7200//用户缓存时间
这里,我们将重点讨论参数 APC。Stat=0ff。这一行关闭文件更改检查。如果没有,PHP 将检查文件是否每次都更改以降低运行速度。关闭后速度会提高,但如果更改 PHP 文件,则不会生效(HTML 和 JS 文件不受影响)。因此,如果对 PHP 进行更改,则需要将此项设置为 on。
APC 有一个管理工具页面。您可以从官网下载一个名为 apc.php 的文件,并将其放在服务器上以查看 apc 的运行状态。
2.使用 memcached 缓存静态页面
存储在内存中比从硬盘读取快得多。用户的访问权限越大,速度的提高就越明显。在 VPS 中安装 memcached 对象缓存以加快 WordPress 的速度!配置后,w3totlecache 插件中的 Memcache 从灰色变为可选。您可以将 pagecachemethod、minifycachemethod、databasecachemethod 和 objectcachemethod 设置为 memcached。从那时起,大多数请求将数据直接返回内存,服务器硬盘可以集中在 MySQL 上。
Memcached 还有一个特殊的管理页面,可以下载。细节将不再重复。打开 PHP FPM 配置文件/etc/PHP FPM.d/www.conf。最后几行应如下所示:
; 将 SessionPathToDirectoryOwnedByProcessUser;php_uuvalue[session.save uuhandler]=文件//注释掉;php\uvalue[session.save\upath]=/var/lib/php/session//注释掉;最后,这里设置的会话路径是有效的 value[session.save\Handler]=Memcache//添加这行 PHP_value[session.save\upath]=tcp://127.0.0.1:11211// 添加此行并记下 IP 地址和端口号
3.删除 Google 字体:自动替换 Google 的 URL–轻松替换前面和背景中的外来字体,显著加快网站速度
4.合理配置 php fpm,大大提高 php 的运行速度。
打开/etc/php-fpm.d/www.conf 并将用户名和第 39 行和第 41 行的组配置为 nginx。其中 156 条线路必须关闭:
slowlog=/var/log/php-fpm/www-slow.log
这是一个错误。如果您记录一个缓慢的日志,PHP 将不可避免地溢出内存,导致所有 PHP 错误。在这一行前面放一个冒号,然后注释掉。
5.MySQL 的合理配置
MySQL 的配置原理比较复杂,但总体思路是减少硬盘读取,合理利用内存缓存。打开另一篇文章,讨论第三篇。
MySQL 优化首先可以提供一个插件来删除 post 的历史版本,这几乎可以将 post 表的容量减少 2/3。那些拥有上万个 post 的站点应该是一个必要的插件:WP optimize。这个插件不仅可以删除帖子的版本,还可以优化数据表,这也是非常有用的。
6.Nginx 配置必须扼杀技术。
nginx 作为一个 web 服务器,是网站软件环境的主题。你为什么最后才谈论它?众所周知,我们的主机是一台虚拟机。在 8 核或 16 核机器上,随机分配给您的 CPU。如果您购买 4 个内核,则只会为您分配 4 个 CPU。如果此物理机器有 10 个正在使用的工作站,则实际 CPU 使用情况未知,但有一条规则保持不变。第一个核心使用最频繁,占用率最高。原因是许多软件默认使用第一个内核。
可爱的 nginx 具有 CPU 进程分配功能。默认情况下,您可以反向分配,让 nginx 使用其他内核,以避免与主机的其他用户发生冲突。
具体操作如下:
执行 cat/proc/cpuinfo 命令将生成一个大的结果列表。我们只需要查看物理 ID,它是 CPU 的物理 ID。如果您购买 2 核 CPU,则将有 2 个物理 ID。请仔细查一下。Cpucores:16 表示这是一个 16 核服务器。Physicalid:0 表示第一个核心已分配给您。Physicalid:3 表示第五个核心分配给您的服务提供商。CPU 分配是随机的,重启后可能会改变。因此,您应该在每次服务器重新启动时重新检查 CPU 核心号并重新绑定 nginx。打开/etc/nginx/conf.d/plus086.conf//将文件名更改为您自己的配置文件名,并添加以下两行:Worker\uprocesses2;工人与 cpu 的亲缘关系 0000000100000011;worker_uuProcess2 已被很好地理解,这表明有两个核心任务。worker_uCPU_uuaffinity 表示 cpu 核心的序列号,它由 8 位二进制表示。
CPU 核心编号:
8 位二进制表示
0:00000001
1:00000010
2:00000011
3:00000100
4:00000101
5:00000110
6:00000111
7:00001000
如果分配了核 0 和核 6,则应按如下方式填写:worker_uCPU_uuAffinity0000011100000001;
将芯 6 放在前面,避免芯 1 的负载,直接使用相对空闲的芯 6。如果您的机器有 8 个以上的芯,则最多可以绑定 8 个芯。Nginx 官员不建议分配超过 8 个内核的进程。
本文章已结束,如转载请注明:汇站网 » WordPress 最终加速原理