Jak zainstalować CDN z obrazami Thumbor

Za pomocą Thumbor można bezpłatnie zmieniać rozmiar, kompresować i przekształcać obrazy na żądanie.

Katie Hempenius
Katie Hempenius

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.

Systemctl wyświetlający stan Thumbor