Mit Thumbor können Sie bei Bedarf die Größe, Komprimierung und Umwandlung von Bildern kostenlos anpassen.
Mit Bild-CDNs können Sie die Ästhetik und Leistung Ihrer Bilder ganz einfach dynamisch optimieren. Im Gegensatz zu den meisten Bild-CDNs ist Thumbor eine Open-Source-Software und kann kostenlos zum Anpassen, Komprimieren und Transformieren von Bildern verwendet werden. Es ist für die Produktion geeignet. Wikipedia und Square verwenden beide Thumbor.
In dieser Anleitung wird erläutert, wie Sie Thumbor auf Ihrem eigenen Server installieren. Nach der Installation können Sie Thumbor als API zum Transformieren Ihrer Bilder verwenden.
Einführung
Sie installieren Thumbor auf einer VM mit Ubuntu 16.04. Ubuntu 16.04 ist ein sehr verbreitetes Image und diese Anleitung gilt für alle Cloud-Anbieter. Das Erstellen einer VM mag nach mehr Aufwand klingen, als Thumbor auf Ihrem lokalen Computer zu installieren, aber die Minuten, die Sie für das Erstellen einer VM benötigen, werden Ihnen wahrscheinlich Stunden oder Tage der Frustration ersparen, wenn Sie versuchen, Thumbor zur ordnungsgemäßen Installation auf Ihrem lokalen Computer zu bringen. Thumbor ist zwar einfach zu bedienen, aber bekanntermaßen schwierig zu installieren, aber diese Anleitung vereinfacht den Prozess. Wenn Abhängigkeiten schnell heruntergeladen werden, kann die Installation in fünf bis zehn Minuten abgeschlossen werden.
Vorbereitung
In diesem Beitrag wird davon ausgegangen, dass Sie wissen, wie Sie eine Ubuntu 16.04 LTS-VM auf einer Cloud-Plattform wie Google Cloud, AWS oder Azure erstellen und wie Sie Befehlszeilentools zum Einrichten der VM verwenden.
Thumbor-Abhängigkeiten installieren
Aktualisieren und aktualisieren Sie die bereits installierten Pakete von Ubuntu:
sudo apt-get update -y && sudo apt-get upgrade -y
Installieren Sie pip
, den Paketmanager für Python. Später installieren Sie Thumbor mit pip
.
sudo apt-get install -y python-pip
Installieren Sie Thumbor-Abhängigkeiten. Diese Abhängigkeiten werden in der Dokumentation von Thumbor nicht explizit erwähnt, aber Thumbor kann ohne sie nicht erfolgreich installiert werden.
# 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
Thumbor installieren
Installieren Sie Thumbor mit pip.
sudo pip install thumbor
Wenn Sie Thumbor erfolgreich installiert haben, sollte Folgendes funktionieren:
thumbor --help
Daumen ausführen
Führen Sie Thumbor aus. Die Fehlerprotokollierung ist optional, kann aber für den Einstieg hilfreich sein.
thumbor --log-level debug
Thumbor wird jetzt ausgeführt.
Offener Firewall-Port
Standardmäßig wird für Thumbor Port 8888 ausgeführt. Wenn die IP-Adresse Ihrer VM 12.123.12.122
lautet, greifen Sie über den Webbrowser unter http://12.123.12.123:8888/.../$IMAGE
auf Thumbor zu.
Dies funktioniert jedoch (noch) wahrscheinlich nicht für Sie, da Cloud-Anbieter in der Regel verlangen, dass Sie Firewall-Ports explizit öffnen, bevor sie eingehenden Traffic akzeptieren.
Aktualisieren Sie die Firewall, um Port 8888 verfügbar zu machen. Weitere Informationen dazu finden Sie für Google Cloud, AWS und Azure. Beachten Sie, dass Sie für Google Cloud zuerst Ihrer VM eine statische IP-Adresse zuweisen und dann eine externe HTTP-Verbindung zulassen müssen.
Google Cloud Platform testen
Thumbor ist jetzt verfügbar und einsatzbereit. Probieren Sie es aus, indem Sie die folgende URL aufrufen:
http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg
Beachten Sie, dass für diese URL HTTP verwendet wird. Thumbor verwendet standardmäßig HTTP, kann aber für die Verwendung von HTTPS konfiguriert werden.
Sie sollten ein Bild sehen, das 100 Pixel breit und 100 Pixel hoch ist. Thumbor hat das Bild hero.jpg
und die im URL-String angegebene Größe genommen und das Ergebnis ausgegeben. Sie können das Bild im URL-String ersetzen (z.B. https://web.dev/install-thumbor/hero.jpg
) durch ein anderes Bild (z.B. https://your-site.com/cat.jpg
) und Thumbor passt die Größe dieses Bildes ebenfalls an.
Im Artikel Bilder mit Thumbor optimieren finden Sie weitere Informationen zur Verwendung der Thumbor API. Die Einrichtung einer Thumbor-Konfigurationsdatei könnte für Sie von Interesse sein.
Anhang: Systemd konfigurieren
In diesem Schritt wird erläutert, wie Sie sicherstellen können, dass der Thumbor-Prozess auch nach dem Neustart der VM weiterhin ausgeführt wird. Dieser Schritt ist für Produktionswebsites wichtig, aber optional, wenn Sie nur mit Thumbor experimentieren.
Systemd ist der „System- und Dienstmanager“. für Linux-Betriebssysteme. Mit systemd
lässt sich ganz einfach konfigurieren, wann Dienste (Prozesse) ausgeführt werden.
Sie konfigurieren systemd
so, dass Thumbor beim VM-Start automatisch gestartet wird. Bei einem Neustart der VM wird auch der Thumbor-Prozess automatisch neu gestartet. Dies ist wesentlich zuverlässiger, als sich beim Starten von Thumbor auf Nutzereingriffe zu verlassen.
Rufen Sie das Verzeichnis /lib/systemd/system
auf. Dieses Verzeichnis enthält die Dienstdateien für systemd
.
cd /lib/systemd/system
Erstellen Sie als Superuser eine thumbor.service
-Datei.
sudo touch thumbor.service
Fügen Sie in Ihrem bevorzugten Texteditor (vim und nano sind auf Ubuntu vorinstalliert oder Sie können einen anderen Editor installieren) die folgende Konfiguration zu thumbor.service
hinzu. Bei dieser Konfiguration wird /usr/local/bin/thumbor
(d. h. das Thumbor-Binärprogramm) ausgeführt, sobald das Netzwerk verfügbar ist. Thumbor wird nach einem Fehler neu gestartet.
[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
ist das Dienstprogramm, mit dem systemd
verwaltet wird. Verwenden Sie den Befehl start
, um Thumbor zu starten.
sudo systemctl start thumbor.service
Klicken Sie dann auf „Aktivieren“, Daumen hoch. Das bedeutet, dass Thumbor beim Booten automatisch gestartet wird.
sudo systemctl enable thumbor.service
Prüfen Sie mit dem Befehl status
, ob Sie systemd
erfolgreich konfiguriert haben.
systemctl status thumbor.service
Wenn du „thumbor.service“ für die Verwendung von systemd
eingerichtet hast, sollte im Status angezeigt werden, dass die Datei aktiviert und aktiv ist.