介绍
在本教程中,我们将教您如何通过使用WP超级缓存和Jetpack Photon插件以及Nginx作为Web服务器来优化WordPress性能。使用此设置,您的WordPress网站可以通过利用上述插件提供的缓存技术大大增加其并发用户容量。 WP超级缓存通过将您的WordPress页面缓存为静态HTML页面来工作,以便对于已缓存的页面的页面请求不需要由WordPress PHP脚本处理。通常,您网站的大多数访问者都将查看WordPress页面的缓存版本,因此您的服务器将拥有更多的处理能力来为更多的用户提供服务。 WP超级缓存插件由Donncha O Caoimh开发。 Jetpack Photon是一个图像加速服务,通过自己的内容交付网络(CDN)缓存和提供您的WordPress图像。 Photon是Jetpack插件中包含的模块之一,它由Automattic的Jetpack Team开发。
先决条件
要遵循本教程,您将需要一个使用Nginx作为其Web服务器的WordPress服务器。如果你没有,你可以使用这些教程创建一个:
插件要求或限制
可WP Super Cache
不使用的查询参数,因为它如果你通过查询参数Nginx的不工作的插件工作。 此外,正因为如此,你
不能使用WordPress的
默认设置
固定链接 (使用WordPress的页码作为参数)。 Jetpack Photon限制:
- 您必须将您的网站连接到WordPress.com以启用Jetpack,这需要一个免费的WordPress.com帐户
- 您的WordPress网站必须侦听端口80(Photon不能使用HTTPS-only网站)
- 一旦gif,jpg或png图片缓存,就无法更新。唯一的解决方法是将重命名的图片重新上传到您的网站。
- 需要太长时间才能复制到Photon CDN(超过10秒)的图像必须重命名并重新上传
如果你不想使用Photon,请随时跳过教程的那一节。 现在我们已经有了前提条件,让我们开始安装WP Super Cache!
安装和配置WP超高速缓存插件
安装WP超高速缓存插件的第一步是从wordpress.org下载到您的主目录:
cd ~; wget http://downloads.wordpress.org/plugin/wp-super-cache.1.4.zip
如果您没有安装解压缩包,请立即执行:
sudo apt-get install unzip
然后将WP Super Cache插件解压缩到您的WordPress插件目录中(如果您在其他地方安装了WordPress,则用您自己的路径替换突出显示的路径):
cd /var/www/html/plugins
unzip ~/wp-super-cache.1.4.zip
接下来,我们将更改插件的组所有权:
sudo chgrp -R www-data wp-super-cache
我们将允许插件写
wp-content
目录和
wp-config.php
文件:
chmod g+w /var/www/html/wp-content
chmod g+w /var/www/html/wp-config.php
现在WordPress文件设置正确,让我们激活插件。
激活WP超级缓存插件
登录到你的WordPress站点管理员的用户,并转到仪表板( http://example.com/wp-admin/ )。激活WP超级缓存插件,然后进入其设置窗口,通过以下步骤:
- 点击插件 (左巴)
- 点击激活的正下方可WP Super Cache
- 点击可WP Super Cache设置
启用缓存
现在我们将启用缓存和配置WP超高速缓存一些合理的设置:
- 单击高级选项卡
- 检查高速缓存命中本网站的快速访问。
- 选择使用mod_rewrite服务缓存文件。
这将配置可WP Super Cache来缓存被访问的文件和设置
的mod_rewrite留给了Nginx的服务缓存的文件。 我们实际上并不打算使用
mod_rewrite,因为它是一个Apache插件,我们使用的是Nginx的作为我们的Web服务器,但我们需要更新我们的Nginx服务器模块配置,使Nginx的适当供应缓存的文件。在我们调整了几个WP超级缓存设置(注意:以下设置是可选的)后,我们会得到:
- 检查压缩的网页,以便他们提供更快速地向参观者。
- 检查是否为已知用户不缓存的页面。
- 检查缓存重建。
- 检查额外的主页检查。
接下来,你需要通过点击
更新状态按钮,这应该是下面你刚刚更改的设置保存设置:
WP超级缓存现在配置为缓存您的WordPress页面。我们仍然需要配置Nginx的
服务缓存文件,但是让我们看看在WP超高速缓存设置窗口中一些其他的东西。
关于Mod Rewrite和Garbage Collection的警告
此时,您将在WP Super Cache配置窗口顶部看到一些警告横幅。将有两个关于Mod Rewrite规则的警告(这里是第一个):
你可以忽略这个,因为我们将使用Nginx而不是Apache。 接下来,您将看到有关垃圾收集设置的警告:
此警告可以通过关闭它来删除(即单击“关闭”按钮)或通过配置垃圾回收。要配置垃圾收集,去
到期时间和垃圾收集部分中的高级选项卡,然后将其配置根据自己的喜好,然后单击
更改过期按钮。
查看缓存内容
你可以去的可WP Super Cache设置
目录选项卡看到所有的缓存页面的列表。在这里,您将看到“缓存统计信息”,其中显示有多少文件被缓存(以及哪些文件被缓存)。您也可以从这里删除当前缓存。 WP超级缓存只缓存未登录,没有留下评论或没有查看过密码保护帖子的用户访问的页面。因此,如果您想知道为什么您正在访问的网页没有缓存,请尝试在隐身浏览模式下查看您的WordPress网站。此外,Nginx尚未配置为提供缓存文件,因此您将看不到访问时间的任何改进。
附加WP超高速缓存配置
除了上面讨论的设置,还有许多其他的,你可能会发现是有用的或有趣的。我们将简要介绍CDN和预加载选项卡。
使用CDN -跳过,如果你打算使用Jetpack Photon 如果使用CDN,一定要能够在
CDN标签CDN支持。卸载静态资产所需的所有设置都位于此处。
预加载缓存 在
预置选项卡中,可以配置可WP Super Cache自动缓存页面。这可以配置为按您指定的时间间隔预加载整个网站或固定数量的最近发布的帖子。预加载页面需要系统资源(用于检索页面的CPU和用于存储静态页面的磁盘空间),因此在决定是否启用它时应考虑这一点。
配置Nginx服务缓存文件
现在你的WordPress网站缓存页面与WP超高速缓存,您必须配置Nginx服务缓存的文件。编辑Nginx服务器块配置:
sudo vi /etc/nginx/sites-enabled/wordpress
如果你跟着必备教程,直接放在下面的配置线下
server_name
行:
set $cache_uri $request_uri;
# POST requests and urls with a query string should always go to PHP
if ($request_method = POST) {
set $cache_uri 'null cache';
}
if ($query_string != "") {
set $cache_uri 'null cache';
}
# Don't cache uris containing the following segments
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';
}
# Don't use the cache for logged in users or recent commenters
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
set $cache_uri 'null cache';
}
# Use cached or actual file if they exists, otherwise pass request to WordPress
location / {
try_files /cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php ;
}
然后删除遵循直至线
location ~ \.php$ {
。 重新启动Nginx以使配置更改生效:
sudo service nginx restart
现在你的WordPress网站的页面将通过WP超高速缓存缓存!如果你也想缓存你的图像,使用Jetpack Photon,继续下一部分。
安装并启用Jetpack Photon
将Jetpack插件下载到您的主目录:
cd ~; wget http://downloads.wordpress.org/plugin/jetpack.latest-stable.zip
然后将Jetpack存档解压缩到WordPress插件目录中:
cd /var/www/html/plugins
unzip ~/jetpack.latest-stable.zip
sudo chgrp -R www-data jetpack
Jetpack附带了除Photon之外的多个模块,其中许多模块默认启用。如果要使用其他Jetpack模块,除Jetpack外,请跳过以下编辑,并通过WordPress管理员信息中心上的Jetpack插件设置激活Photon模块。否则,我们可以通过向插件的PHP文件添加几行代码来禁用其他模块。 打开
wp-config.php
进行编辑:
vi /var/www/html/wp-config.php
转到文件的末尾并添加以下代码行:
function change_default_modules() {
return array( 'photon' ); // activate these modules by default
}
add_filter( 'jetpack_get_default_modules', 'change_default_modules' );
function activate_specific_jetpack_modules( $modules ) {
$active_modules = array( 'photon' ); // enable these modules
$modules = array_intersect_key( $modules, array_flip( $active_modules ) ); // deactivate other modules
return $modules;
}
add_filter( 'jetpack_get_available_modules', 'activate_specific_jetpack_modules' );
保存并退出。现在当你激活Jetpack插件,它只会加载Photon模块,禁用所有其他Jetpack模块的使用。
激活Jetpack插件
现在登录到你的WordPress站点管理员的用户,并转到仪表板( http://example.com/wp-admin/ )。激活Jetpack插件,然后进入其设置,通过以下步骤:
- 点击插件 (左巴)
- 点击激活正下方的Jetpack
- 单击连接到WordPress.com,在绿色旗帜附近插件窗口顶部
- 输入您的WordPress.com登录并点击授权的Jetpack
现在,您的WordPress网站上的所有图像(.png,.jpg,.gif)将由Jetpack的Photon CDN提供。以下是您的服务器将受到影响的几种方式:
- 更少的带宽消耗 :您的服务器将使用更少的带宽传出因为Photon CDN,这是由WordPress.com提供,将成为你的网站的图片
- 资源消耗少 :这将消耗更少的CPU和内存,因为它不再提供图像给用户,大多只有静态页面
- 更多的用户容量 :这将能够处理更多的并发用户,因为它是用每个请求的资源
而已! Photon CDN将根据请求缓存和提供您的图像。注意,如果您决定不想使用Jetpack插件设置,您可以随时禁用Photon。
性能比较
为了让您了解这种设置的潜在性能优势,我们设置了两个1 CPU / 1GB RAM VPS(一个没有WP超高速缓存,一个有它),我们使用Apache JMeter对它们执行负载测试(多个用户在循环中访问5个WordPress页面超过10秒)。 非缓存服务器每秒能处理大约3个模拟用户,然后由于CPU利用率而显示性能问题。 高速缓存的服务器,安装可WP Super Cache,能够支持超过50个模拟用户每秒(
每天百万 )没有表现出任何性能下降-事实上,它更迅速,因为请求的页面被缓存返回的请求! 关于如何使用Apache JMeter的执行自己的负载测试的教程可以在这里找到:
如何使用Apache JMeter的要在Web服务器上执行负载测试
结论
现在你已经安装了WP Super Cache和Jetpack Photon,你应该能够比以前服务更多的用户。你可能想玩WP超级缓存设置,直到你觉得你有一个最适合你的需要的配置。 随意提出问题或自己的性能比较!