Un lapin bleu de dessin animé avec une fourrure blanche, des yeux violets et une cape de super-héros rouge se tient dans un cercle. En dessous, un texte gris en gras indique "VARNISH" avec "CACHE" en lettres plus petites, soulignant comment configurer un cache avec Varnish pour Apache.

Varnish, Apache et PHP : configurer un cache moderne

Installer APC et Varnish devant Apache était une très bonne idée il y a quelques années. À l’époque, APC servait à la fois de cache opcode PHP et de cache utilisateur. Varnish, lui, permettait déjà de placer un reverse proxy HTTP très rapide devant Apache pour servir les pages les plus demandées sans réveiller toute la pile PHP/MySQL.

Aujourd’hui, l’objectif reste valable : réduire la charge, accélérer les réponses et absorber plus de trafic. En revanche, la stack a changé. On ne doit plus installer l’ancien APC. On utilise OPcache pour le bytecode PHP, APCu seulement si l’application en a besoin, et Varnish comme cache HTTP devant Apache lorsque le contexte s’y prête.

Ce guide modernise donc l’approche : diagnostic, OPcache, APCu, Varnish, Apache en backend, vraie IP visiteur, configuration VCL prudente, purge du cache, WordPress, WooCommerce et dépannage.

Lire la suite

Le logo de Cloudflare comporte le mot "CLOUDFLARE" en lettres majuscules noires, à côté d'un nuage et d'un soleil orange avec une flamme blanche au milieu, le tout sur un fond gris clair. On le voit parfois lorsqu'on rencontre une erreur HTTP/2 PROTOCOL_ERROR.

Résoudre l’erreur HTTP/2 stream was not closed cleanly

L’erreur HTTP/2 stream was not closed cleanly apparaît souvent avec curl, Git, une API, un navigateur, un CDN ou un reverse proxy. Elle indique qu’un flux HTTP/2 a été interrompu ou fermé d’une manière que le client considère comme incorrecte.

Le message exact varie selon le contexte :

curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)Langage du code : HTTP (http)
curl: (92) HTTP/2 stream 1 was not closed cleanly: INTERNAL_ERROR (err 2)Langage du code : HTTP (http)
error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanlyLangage du code : HTTP (http)

Le réflexe classique consiste à accuser curl, Git ou le navigateur. Pourtant, dans beaucoup de cas, le problème vient plutôt du serveur, du CDN, d’un proxy intermédiaire, d’un en-tête HTTP invalide, d’un timeout, ou d’un backend qui coupe la réponse trop tôt.

Voici une méthode propre pour diagnostiquer et corriger l’erreur, sans désactiver HTTP/2 au hasard comme on débranche une multiprise en pleine prod.

Lire la suite

L'image compare la diffusion de contenu avec et sans RSS. Sans RSS, les utilisateurs doivent vérifier manuellement les mises à jour des sites. Avec le RSS, le nouveau contenu est automatiquement envoyé aux utilisateurs via les lecteurs RSS ou apparaît dans les résultats de recherche via les agrégateurs de contenu.

Flux RSS : pourquoi ils restent indispensables pour suivre le web sans algorithmes

Je suis tombé, il y a déjà longtemps, sur un schéma publié par Search Engine Land qui résumait très bien le principe des flux RSS. L’image avait quelque chose de presque militant : elle montrait comment un simple flux pouvait relier un site, ses lecteurs, ses agrégateurs, ses outils de veille et même les moteurs de recherche.

À l’époque, RSS représentait surtout un confort de lecture. Aujourd’hui, il représente quelque chose de plus rare : un moyen de suivre le web sans dépendre d’un algorithme.

Et franchement, ce n’est pas rien.

Qu’est-ce qu’un flux RSS ?

RSS signifie Really Simple Syndication. C’est un format XML qui permet à un site de publier automatiquement ses nouveaux contenus dans un fichier structuré. Ce fichier contient généralement le titre de l’article, son lien, sa date de publication, un extrait, parfois l’image principale, et d’autres métadonnées utiles.

En clair, le site publie. Le flux se met à jour. Le lecteur RSS récupère l’information.

Pas besoin d’ouvrir vingt onglets. Pas besoin de rafraîchir une page d’accueil. Pas besoin d’attendre qu’un réseau social daigne afficher l’article dans un fil d’actualité.

RSS fait le travail proprement, en silence.

Le principe : centraliser l’information

Le système RSS est ingénieux parce qu’il évite de multiplier les marque-pages et les visites manuelles.

Au lieu d’ouvrir chaque site un par un, on ajoute leurs flux RSS dans un lecteur comme Feedly, Inoreader, NewsBlur, Netvibes ou FreshRSS. Ensuite, tous les nouveaux articles arrivent dans une seule interface.

C’est le même principe que le webmail pour les emails : on ne va pas frapper à la porte de chaque serveur. On centralise tout dans un outil unique, accessible depuis un ordinateur, une tablette ou un téléphone.

Lire la suite