Vous pouvez utiliser Thumbor sans frais pour redimensionner, compresser et transformer des images à la demande.
Les CDN pour les images facilitent l'optimisation dynamique de l'esthétique et des performances de vos images. Contrairement à la plupart des CDN images, Thumbor est Open Source et peut être utilisé sans frais pour redimensionner, compresser et transformer des images. Il est adapté à une utilisation en production. Wikipedia et Square utilisent Thumbor.
Ce guide explique comment installer Thumbor sur votre propre serveur. Une fois l'application installée, vous pourrez utiliser Thumbor comme API pour transformer vos images.
Introduction
Vous allez installer Thumbor sur une VM exécutant Ubuntu 16.04. Ubuntu 16.04 est une image très courante. Ces instructions sont destinées à fonctionner avec n'importe quel fournisseur de services cloud. La création d'une VM peut sembler plus difficile que d'installer Thumbor sur votre ordinateur local, mais les minutes que vous prendrez pour créer une VM vous épargneront probablement des heures, voire des jours, de frustration lors de l'installation de Thumbor sur votre machine locale. Bien que facile à utiliser, Thumbor est réputé pour être difficile à installer, mais ces instructions simplifient le processus. Si les dépendances se téléchargent rapidement, l'installation peut prendre entre 5 et 10 minutes.
Prérequis
Dans cet article, nous partons du principe que vous savez comment créer une VM Ubuntu 16.04 LTS sur une plate-forme cloud comme Google Cloud, AWS ou Azure, et que vous savez utiliser les outils de ligne de commande pour la configurer.
Installer des dépendances Thumbor
Mettez à jour les packages déjà installés d'Ubuntu:
sudo apt-get update -y && sudo apt-get upgrade -y
Installez pip
, le gestionnaire de packages pour Python. Par la suite, vous installerez Thumbor avec pip
.
sudo apt-get install -y python-pip
Installez les dépendances de Thumbor. La documentation de Thumbor ne mentionne pas explicitement ces dépendances, mais Thumbor ne pourra pas être installé sans elles.
# ssl packages
sudo apt-get install -y libcurl4-openssl-dev libssl-dev
# computer vision packages
sudo apt-get install -y python-opencv libopencv-dev
# image format packages
sudo apt-get install -y libjpeg-dev libpng-dev libwebp-dev webp
Installer Thumbor
Installez Thumbor à l'aide de pip.
sudo pip install thumbor
Si vous avez réussi à installer Thumbor, cela devrait fonctionner:
thumbor --help
Exécuter Thumbor
Lancez Thumbor. La journalisation des données de débogage est facultative, mais elle peut être utile lorsque vous commencez.
thumbor --log-level debug
Thumbor est en cours d'exécution.
Port de pare-feu ouvert
Par défaut, Thumbor s’exécute sur le port 8888. Si l'adresse IP de votre VM est 12.123.12.122
, vous accéderez à Thumbor depuis le navigateur Web à l'adresse http://12.123.12.123:8888/.../$IMAGE
.
Toutefois, cela ne fonctionnera probablement pas (encore) dans votre cas, car les fournisseurs de services cloud vous demandent généralement d'ouvrir explicitement les ports de pare-feu avant qu'ils n'acceptent le trafic entrant.
Mettez à jour le pare-feu pour exposer le port 8888. Voici plus d'informations sur la procédure à suivre pour Google Cloud, AWS et Azure. Notez que pour Google Cloud, vous devez d'abord attribuer une adresse IP statique à votre VM, puis autoriser une connexion HTTP externe.
Faire le test
Thumbor est désormais accessible et prêt à l'emploi. Essayez-le en accédant à l'URL suivante:
http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg
Notez que cette URL utilise le protocole HTTP. Thumbor utilise HTTP par défaut, mais peut être configuré pour utiliser HTTPS.
Vous devriez voir une image mesurant 100 pixels de large sur 100 pixels de haut. Thumbor a pris l'image hero.jpg
et la taille spécifiée dans la chaîne d'URL et a diffusé le résultat. Vous pouvez remplacer l'image dans la chaîne d'URL (par exemple, https://web.dev/install-thumbor/hero.jpg
) par une autre image (par exemple, https://your-site.com/cat.jpg
), et Thumbor redimensionne également cette image.
Pour en savoir plus sur l'utilisation de l'API Thumbor, consultez l'article Optimiser les images avec Thumbor. En particulier, la configuration d'un fichier de configuration Thumbor peut vous intéresser.
Annexe: Configuration de systemd
Cette étape explique comment s'assurer que le processus Thumbor continue de s'exécuter, même après le redémarrage de la VM. Cette étape est importante pour les sites de production, mais facultative si vous vous contentez de jouer avec Thumbor.
Systemd est le "gestionnaire de systèmes et de services". pour les systèmes d'exploitation Linux. systemd
facilite la configuration de l'exécution des services (processus).
Vous allez configurer systemd
pour lancer automatiquement Thumbor au démarrage de la VM. Si la VM est redémarrée, le processus Thumbor redémarre également automatiquement. Cette méthode est beaucoup plus fiable que de compter sur l'intervention de l'utilisateur pour lancer Thumbor.
Accédez au répertoire /lib/systemd/system
. Ce répertoire contient les fichiers de service pour systemd
.
cd /lib/systemd/system
En tant que super-utilisateur, créez un fichier thumbor.service
.
sudo touch thumbor.service
À l'aide de l'éditeur de texte de votre choix (vim et nano sont préinstallés sur Ubuntu, ou vous pouvez installer un autre éditeur), ajoutez la configuration suivante à thumbor.service
. Cette configuration exécutera /usr/local/bin/thumbor
(le binaire Thumbor) une fois la mise en réseau disponible et redémarrera Thumbor en cas d'échec.
[Unit]
Description=Service for Thumbor image CDN
Documentation=https://thumbor.readthedocs.io/en/latest/
After=network.target
[Service]
ExecStart=/usr/local/bin/thumbor
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl
est l'utilitaire utilisé pour gérer systemd
. Utilisez la commande start
pour démarrer Thumbor.
sudo systemctl start thumbor.service
Ensuite, "activer" Thumbor. Cela signifie que Thumbor démarre automatiquement au démarrage.
sudo systemctl enable thumbor.service
Vérifiez que vous avez correctement configuré systemd
en exécutant la commande status
.
systemctl status thumbor.service
Si vous avez réussi à configurer thumbor.service pour utiliser systemd
, l'état devrait indiquer qu'il est activé et actif.