Comment utiliser WP Super Cache et Jetpack Photon pour optimiser les performances WordPress sur Ubuntu 14.04

introduction

Dans ce didacticiel, nous allons vous apprendre à optimiser les performances de WordPress en utilisant les plug-ins WP Super Cache et Jetpack Photon, ainsi que Nginx en tant que serveur Web. Grâce à cette configuration, votre site WordPress peut augmenter considérablement la capacité de ses utilisateurs simultanés en tirant parti des techniques de mise en cache fournies par les plugins susmentionnés.

WP Super Cache fonctionne en mettant en cache vos pages WordPress en tant que pages HTML statiques, de sorte que les requêtes de page, pour une page déjà mise en cache, ne doivent pas nécessairement être traitées par les scripts PHP WordPress. En règle générale, la plupart des visiteurs de votre site visualisent les versions en cache des pages WordPress. Par conséquent, votre serveur disposera de plus de puissance de traitement pour desservir un nombre accru d’utilisateurs. Le plugin WP Super Cache est développé par Donncha O Caoimh.

Jetpack Photon est un service d’accélération d’image qui fonctionne en mettant en cache et en servant vos images WordPress via son propre réseau de diffusion de contenu (CDN). Photon est l’un des modules inclus dans le plugin Jetpack, qui est développé par l’équipe Jetpack d’Automattic.

Conditions préalables

Pour suivre ce didacticiel, vous aurez besoin d’un serveur WordPress utilisant Nginx comme serveur Web. Si vous n’en avez pas, vous pouvez utiliser ces tutoriels pour en créer un:

Conditions requises ou limitations du plugin

WP Super Cache * ne fonctionne pas * avec les plug-ins qui utilisent des arguments de requête, car cela ne fonctionne pas si vous transmettez des arguments de requête à Nginx. Aussi, pour cette raison, vous * ne * devez pas * utiliser les paramètres WordPress Default Permalink (qui utilisent les numéros de page WordPress comme arguments).

Limitations de Jetpack Photon:

  • Vous devez connecter votre site à WordPress.com pour activer Jetpack, qui nécessite un compte WordPress.com gratuit.

  • Votre site WordPress doit écouter sur le port 80 (Photon ne fonctionnera pas avec les sites exclusivement HTTPS)

  • Une fois qu’une image gif, jpg ou png est mise en cache, elle ne peut plus être mise à jour. La seule solution consiste à télécharger à nouveau une image renommée sur votre site.

  • Les images dont la copie prend trop de temps sur le CDN Photon (plus de 10 secondes) doivent être renommées et rechargées.

Si vous ne souhaitez pas utiliser Photon, n’hésitez pas à ignorer cette section du didacticiel.

Maintenant que les conditions préalables sont remplies, commençons l’installation de WP Super Cache!

Installer et configurer le plugin WP Super Cache

La première étape pour installer le plugin WP Super Cache consiste à le télécharger à partir de wordpress.org vers votre répertoire personnel:

cd ~; wget http://downloads.wordpress.org/plugin/wp-super-cache.1.4.zip

Si le package unzip n’est pas installé, faites-le maintenant:

sudo apt-get install unzip

Puis décompressez le plugin WP Super Cache dans votre répertoire de plugins WordPress (remplacez le chemin en surbrillance par le vôtre, si vous avez installé WordPress ailleurs):

cd /wp-content/plugins
unzip ~/wp-super-cache.1.4.zip

Ensuite, nous allons changer la propriété du groupe du plugin:

sudo chgrp -R www-data wp-super-cache

Et nous allons permettre au plugin d’écrire dans le répertoire + wp-content + et dans le fichier + wp-config.php +:

chmod g+w /wp-content
chmod g+w /wp-config.php

Maintenant que les fichiers WordPress sont correctement configurés, activons le plugin.

Activer le plugin WP Super Cache

Connectez-vous à votre site WordPress en tant qu’utilisateur administrateur et accédez à Dashboard (http://example.com/wp-admin/). Activez le plug-in WP Super Cache, puis accédez à sa fenêtre de configuration en procédant comme suit:

  1. Cliquez sur Plugins (barre de gauche)

  2. Cliquez sur Activer directement sous WP Super Cache

  3. Cliquez sur WP Super Cache Settings

Activer la mise en cache

Nous allons maintenant activer la mise en cache et configurer WP Super Cache avec certains paramètres raisonnables:

  1. Cliquez sur l’onglet Avancé

  2. Consultez les hits de Cache sur ce site Web pour un accès rapide.

  3. Sélectionnez Utilisez mod_rewrite pour servir les fichiers de cache .

Cela configure WP Super Cache pour mettre en cache les fichiers auxquels on accède, et le paramètre mod_rewrite laisse le soin à Nginx de servir les fichiers mis en cache. Nous n’allons pas réellement utiliser mod_rewrite car il s’agit d’un plug-in Apache et nous utilisons Nginx comme serveur Web, mais nous devrons mettre à jour la configuration de bloc de notre serveur Nginx afin que Nginx serve correctement les fichiers mis en cache. Nous y arriverons après avoir peaufiné quelques paramètres supplémentaires de WP Super Cache (remarque: les paramètres suivants sont facultatifs):

  1. Consultez les pages Compress pour qu’elles soient servies plus rapidement aux visiteurs.

  2. Vérifiez Pas de cache dans les pages pour les utilisateurs connus.

  3. Vérifiez la reconstruction du cache.

  4. Check Extra page d’accueil vérifie .

Ensuite, vous devez enregistrer vos paramètres en cliquant sur le bouton Update Status, qui doit se situer sous les paramètres que vous venez de modifier:

image: https: //assets.digitalocean.com/articles/wordpress_supercache/update_status.png [Bouton de statut de mise à jour]

WP Super Cache est maintenant configuré pour mettre en cache vos pages WordPress. Nous devons toujours configurer Nginx pour server les fichiers mis en cache, mais examinons quelques autres éléments dans la fenêtre des paramètres de WP Super Cache.

Avertissements à propos de la réécriture de mod et de la récupération de place

À ce stade, vous verrez des bannières d’avertissement en haut de la fenêtre de configuration de WP Super Cache. Il y aura deux avertissements à propos des règles de réécriture du mod (voici le premier):

image: https: //assets.digitalocean.com/articles/wordpress_supercache/mod_rewrite_warning.png [Avertissement de modification d’écriture]

Vous pouvez l’ignorer car nous allons utiliser Nginx au lieu d’Apache.

Ensuite, vous verrez un avertissement concernant les paramètres de récupération de place:

image: https: //assets.digitalocean.com/articles/wordpress_supercache/garbage_collection.png [Avertissement de ramassage des ordures]

Cet avertissement peut être supprimé en le rejetant (c’est-à-dire cliquez sur le bouton "Dismiss") ou en configurant la récupération de place. Pour configurer la récupération de place, accédez à la section Expiry Time & Garbage Collection de l’onglet Avancé, configurez-la à votre guise, puis cliquez sur le bouton Change Expiration.

Affichage du contenu du cache

Vous pouvez voir la liste de toutes les pages mises en cache en accédant à l’onglet Contents des paramètres WP Super Cache. Ici, vous verrez les «statistiques de cache», qui indiquent combien de fichiers sont mis en cache (et quels fichiers sont mis en cache). Vous pouvez également supprimer le cache actuel à partir d’ici.

WP Super Cache met uniquement en cache les pages visitées par les utilisateurs qui ne se sont pas connectés, qui n’ont pas laissé de commentaire ou qui n’ont pas vu de publication protégée par mot de passe. Ainsi, si vous vous demandez pourquoi les pages que vous visitez ne sont pas mises en cache, essayez de visualiser votre site WordPress en mode de navigation privée. De plus, Nginx n’est pas encore configuré pour servir les fichiers en cache, vous ne constaterez donc aucune amélioration des temps d’accès.

Configuration supplémentaire du super cache WP

En plus des paramètres décrits ci-dessus, vous pouvez en trouver de nombreux autres utiles ou intéressants. Nous allons brièvement passer en revue les onglets CDN et Preloading.

  • Utiliser un CDN * - Sautez si vous allez utiliser Jetpack Photon

Si vous utilisez un CDN, veillez à activer le support CDN dans l’onglet CDN. Tous les paramètres dont vous avez besoin pour décharger vos actifs statiques se trouvent ici.

  • Cache de préchargement *

Dans l’onglet Preload, vous pouvez configurer WP Super Cache pour mettre automatiquement en cache les pages. Cela peut être configuré pour précharger votre site entier ou un nombre fixe de vos publications récentes sur un intervalle de temps que vous spécifiez. Le préchargement des pages nécessite des ressources système (le processeur pour récupérer les pages et l’espace disque pour stocker les pages statiques), gardez cela à l’esprit lorsque vous décidez de l’activer.

Configurer Nginx pour servir les fichiers en cache

Maintenant que votre site WordPress met en cache des pages avec WP Super Cache, vous devez configurer Nginx pour servir les fichiers en cache. Éditez la configuration de bloc du serveur Nginx:

sudo vi /etc/nginx/sites-enabled/wordpress

Si vous avez suivi les didacticiels prérequis, placez les lignes de configuration suivantes directement sous la ligne + nom_serveur +:

   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 /wp-content/cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php ;
   }

Puis supprimez les lignes qui suivent jusqu’à + emplacement ~ \ .php $ {+.

Redémarrez Nginx pour appliquer les modifications de configuration:

sudo service nginx restart

Maintenant, les pages de votre site WordPress seront mises en cache via WP Super Cache! Si vous souhaitez également mettre vos images en cache, utilisez Jetpack Photon, passez à la section suivante.

Installer et activer Jetpack Photon

Téléchargez le plugin Jetpack dans votre répertoire personnel:

cd ~; wget http://downloads.wordpress.org/plugin/jetpack.latest-stable.zip

Puis décompressez l’archive Jetpack dans votre répertoire de plugins WordPress:

cd /wp-content/plugins
unzip ~/jetpack.latest-stable.zip
sudo chgrp -R www-data jetpack

Jetpack est livré avec plusieurs modules autres que Photon, dont beaucoup sont activés par défaut. Si vous souhaitez utiliser les autres modules Jetpack, en plus de Jetpack, ignorez les modifications suivantes et activez le module Photon via les paramètres du plug-in Jetpack sur votre tableau de bord administrateur WordPress. Sinon, nous pouvons désactiver les autres modules en ajoutant quelques lignes de code aux fichiers PHP du plugin.

Ouvrez + wp-config.php + pour l’édition:

vi /wp-config.php

Accédez à la fin du fichier et ajoutez les lignes de code suivantes:

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' );

Sauvegarder et quitter. Désormais, lorsque vous activez le plug-in Jetpack, il ne chargera que le module Photon et désactivera l’utilisation de tous les autres modules Jetpack.

Activer le plugin Jetpack

Connectez-vous maintenant à votre site WordPress en tant qu’utilisateur administrateur et accédez à Dashboard (http://example.com/wp-admin/). Activez le plugin Jetpack, puis accédez à ses paramètres en procédant comme suit:

  1. Cliquez sur Plugins (barre de gauche)

  2. Cliquez sur Activer directement sous Jetpack

  3. Cliquez sur Connect to WordPress.com, dans la bannière verte en haut de la fenêtre Plugins.

  4. Entrez votre identifiant WordPress.com et cliquez sur Authorize Jetpack

image: https: //assets.digitalocean.com/articles/wordpress_supercache/authorize_jetpack.png [Autoriser Jetpack]

Désormais, toutes les images de votre site WordPress (.png, .jpg, .gif) seront diffusées à partir du Photon CDN de Jetpack. Voici quelques façons dont votre serveur sera affecté:

  • * Réduction de la consommation de bande passante *: votre serveur utilisera moins de bande passante sortante, car le CDN Photon, fourni par WordPress.com, servira les images de votre site.

  • * Moins de consommation de ressources *: Il consomme moins de temps processeur et de mémoire car il ne fournit plus d’images aux utilisateurs, et principalement des pages statiques

  • * Plus de capacité utilisateur *: Il sera capable de gérer plus d’utilisateurs simultanés, car il utilise moins de ressources par requête

C’est ça! Le CDN Photon mettra en cache et servira vos images à la demande. Notez que vous pouvez désactiver Photon dans les paramètres du plug-in Jetpack à tout moment, si vous décidez de ne pas l’utiliser.

Comparaison de performance

Pour vous donner une idée des avantages potentiels de cette configuration en termes de performances, nous avons configuré deux VPS de 1 CPU / 1 Go de RAM (un sans WP Super Cache, un avec elle) et nous avons utilisé Apache JMeter pour effectuer un test de charge (plusieurs utilisateurs). accéder à 5 pages WordPress plus de 10 secondes en boucle).

Le serveur non mis en cache était capable de gérer environ 3 utilisateurs simulés par seconde avant d’afficher des problèmes de performances dus à l’utilisation du processeur.

Le serveur mis en cache, avec WP Super Cache installé, était en mesure de servir plus de 50 utilisateurs simulés par seconde (_ millions de dollars par jour_) sans afficher de dégradation des performances. En fait, il a renvoyé les demandes plus rapidement car les pages demandées étaient mises en cache!

Un tutoriel sur la façon d’utiliser Apache JMeter pour effectuer vos propres tests de charge est disponible à l’adresse suivante: https://www.digitalocean.com/community/tutorials/how-to-use-apache-jmeter-to-perform-load-testing- sur un serveur Web [Comment utiliser Apache JMeter pour effectuer des tests de charge sur un serveur Web]

Conclusion

Maintenant que WP Super Cache et Jetpack Photon sont installés, vous devriez pouvoir servir beaucoup plus d’utilisateurs qu’auparavant. Vous voudrez peut-être jouer avec les paramètres WP Super Cache jusqu’à ce que vous ayez la configuration qui vous convient le mieux.

N’hésitez pas à poster des questions ou vos propres comparaisons de performances!