Utiliser WebAssembly autour de Nginx peut être envisagé pour un traitement très spécifique d’assets ou de requêtes. C’est une architecture avancée qui ajoute un runtime, des règles de sécurité et une surface d’exploitation. Pour la majorité des sites, un CDN, des images pré-générées et un cache correctement configuré sont plus simples et plus fiables.
Identifier le vrai problème
Avant d’introduire un runtime supplémentaire, mesurez: origine des images, taux de cache, poids des formats, génération de miniatures, coût CPU et temps de réponse. Une image transformée à chaque requête doit d’abord être mise en cache ou pré-générée.
Cas où une expérimentation est justifiée
- transformation strictement définie et répétée ;
- besoin d’isolation par sandbox ;
- équipe capable de maintenir Nginx, le runtime et les mises à jour ;
- métrique claire à améliorer, sans bloquer le chemin de commande.
Sécurité et exploitation
Un module de traitement côté proxy doit avoir des limites de taille, de durée et de mémoire. Journalisez les erreurs, bloquez les entrées non attendues et prévoyez un retour au comportement standard si le runtime est indisponible. Ne faites pas dépendre une page critique d’une transformation dynamique non nécessaire.
Alternative souvent préférable
Pour les images, pré-générez WebP/AVIF, servez-les via CDN, utilisez srcset et conservez une image source de qualité. Pour le texte et les assets statiques, compression, cache HTTP et versionnement produisent généralement le meilleur rapport bénéfice/complexité.