Za pomocą Thumbor można bezpłatnie zmieniać rozmiar, kompresować i przekształcać obrazy na żądanie.
Sieci CDN z obrazami ułatwiają dynamiczną optymalizację estetyki i skuteczności obrazów. W odróżnieniu od większości sieci CDN z obrazami Thumbor to oprogramowanie typu open source, z którego można bezpłatnie korzystać do zmieniania rozmiaru, kompresowania i przekształcania obrazów. Można go używać w środowiskach produkcyjnych. Zarówno Wikipedia, jak i Kwadrat używają Thumbor.
Z tego przewodnika dowiesz się, jak zainstalować Thumbor na własnym serwerze. Po zainstalowaniu możesz używać Thumbor jako interfejsu API do przekształcania obrazów.
Wprowadzenie
Instalujesz Thumbor w maszynie wirtualnej z systemem Ubuntu 16.04. Ubuntu 16.04 jest bardzo popularnym obrazem, a podane instrukcje powinny zadziałać u każdego dostawcy usług w chmurze. Utworzenie maszyny wirtualnej może wydawać się bardziej pracochłonne niż zainstalowanie Thumbor na komputerze lokalnym, ale czas poświęcony na utworzenie maszyny wirtualnej zaoszczędzi Ci godziny lub dni frustracji z powodu próby poprawnej zainstalowania Thumbor na komputerze lokalnym. Chociaż aplikacja Thumbor jest łatwa w użyciu, instalacja ta jest niezmiernie trudna, ale podane tu instrukcje upraszczają ten proces. Jeśli zależności zostaną szybko pobrane, instalacja może potrwać od 5 do 10 minut.
Wymagania wstępne
Zakładamy w nim, że wiesz, jak utworzyć maszynę wirtualną Ubuntu 16.04 LTS w chmurze na platformie Google Cloud, AWS, lub Azure, a także jak skonfigurować maszynę wirtualną za pomocą narzędzi wiersza poleceń.
Instalowanie zależności miniatur
Zaktualizuj i uaktualnij pakiety Ubuntu już zainstalowane:
sudo apt-get update -y && sudo apt-get upgrade -y
Zainstaluj pip
– menedżera pakietów dla Pythona. Później zainstalujesz Thumbor za pomocą pip
.
sudo apt-get install -y python-pip
Zainstaluj zależności Thumbor. Dokumentacja urządzenia Thumbor nie wspomina o tych zależnościach, ale bez nich Thumbor nie będzie działać prawidłowo.
# 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
Zainstaluj Thumbor
Zainstaluj Thumbor przy użyciu pip.
sudo pip install thumbor
Jeśli udało Ci się zainstalować Thumbor, powinno to zadziałać:
thumbor --help
Uruchom Thumbor
Uruchom Thumbor. Logowanie debugowania jest opcjonalne, ale może być przydatne na początek.
thumbor --log-level debug
Aplikacja Thumbor jest uruchomiona.
Otwarty port zapory sieciowej
Domyślnie aplikacja Thumbor działa na porcie 8888. Jeśli adres IP Twojej maszyny wirtualnej to 12.123.12.122
, możesz uzyskać dostęp do Thumbor w przeglądarce pod adresem http://12.123.12.123:8888/.../$IMAGE
.
Jednak na razie takie rozwiązanie prawdopodobnie nie zadziała, ponieważ dostawcy usług w chmurze zwykle wymagają wyraźnego otwarcia portów zapory sieciowej, zanim przyjmą one ruch przychodzący.
Zaktualizuj zaporę sieciową, aby udostępnić port 8888. Tutaj dowiesz się, jak to zrobić w usługach Google Cloud, AWS i Azure. Pamiętaj, że w przypadku Google Cloud musisz najpierw przypisać do maszyny wirtualnej statyczny adres IP, a potem zezwolić na zewnętrzne połączenie HTTP.
Wypróbuj
Funkcja Thumbor jest teraz dostępna i gotowa do użycia. Aby wypróbować tę funkcję, odwiedź ten URL:
http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg
Pamiętaj, że ten adres URL używa protokołu HTTP. Aplikacja Thumbor domyślnie używa protokołu HTTP, ale można ją skonfigurować do korzystania z protokołu HTTPS.
Powinien wyświetlić się obraz o szerokości 100 pikseli na 100 pikseli wysokości. Thumbor przejęło obraz hero.jpg
i rozmiar określony w ciągu adresu URL i wyświetlił wynik. Obraz możesz zastąpić w ciągu adresu URL (np. https://web.dev/install-thumbor/hero.jpg
) dowolnym innym obrazem (np. https://your-site.com/cat.jpg
) i Thumbor zmieni rozmiar obrazu.
Więcej informacji o korzystaniu z interfejsu Thumbor API znajdziesz w artykule Optymalizacja obrazów za pomocą Thumbor. Być może zainteresuje Cię skonfigurowanie pliku konfiguracji Thumbor.
Dodatek: konfigurowanie systemu Systemd
Ten krok wyjaśnia, co zrobić, aby proces Thumbor nadal działał nawet po ponownym uruchomieniu maszyny wirtualnej. Ten krok jest ważny w przypadku witryn produkcyjnych, ale jest opcjonalny, jeśli dopiero zaczynasz korzystać z Thumbor.
Systemd to „menedżer systemu i usług” na potrzeby systemów operacyjnych Linux. systemd
ułatwia skonfigurowanie czasu uruchamiania usług (procesów).
Skonfigurujesz usługę systemd
tak, aby automatycznie uruchamiała Thumbor podczas rozruchu maszyny wirtualnej. Jeśli maszyna wirtualna zostanie ponownie uruchomiona, proces Thumbor również zostanie automatycznie uruchomiony ponownie. To znacznie bardziej niezawodne niż włączanie się Thumbor przez interwencję użytkownika.
Przejdź do katalogu /lib/systemd/system
. Ten katalog zawiera pliki usługi systemd
.
cd /lib/systemd/system
Jako superużytkownik utwórz plik thumbor.service
.
sudo touch thumbor.service
Korzystając ze swojego ulubionego edytora tekstu (vim i nano są fabrycznie zainstalowane w Ubuntu lub możesz zainstalować inny edytor), dodaj do thumbor.service
tę konfigurację. Ta konfiguracja uruchomi tryb /usr/local/bin/thumbor
(czyli plik binarny Thumbor), gdy sieć będzie dostępna, a w przypadku niepowodzenia ponownie uruchomi Thumbor.
[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
to narzędzie służące do zarządzania domeną systemd
. Aby uruchomić Thumbor, użyj polecenia start
.
sudo systemctl start thumbor.service
Następnie „włącz” Thumbor. Oznacza to, że Thumbor uruchomi się automatycznie podczas uruchamiania.
sudo systemctl enable thumbor.service
Sprawdź, czy konfiguracja usługi systemd
jest poprawnie skonfigurowana, uruchamiając polecenie status
.
systemctl status thumbor.service
Jeśli thumbor.service udało Ci się skonfigurować do korzystania z systemd
, stan powinien wskazywać, że usługa jest włączona i aktywna.