Thumbor può essere utilizzato senza costi per ridimensionare, comprimere e trasformare le immagini su richiesta.
Le CDN di immagini consentono di ottimizzare facilmente in modo dinamico l'estetica e le prestazioni delle immagini. A differenza della maggior parte delle reti CDN di immagini, Thumbor è open source e può essere utilizzato senza costi per ridimensionare, comprimere e trasformare le immagini. È adatto per l'uso in produzione; Wikipedia e Square usano entrambi Thumbor.
Questa guida spiega come installare Thumbor sul tuo server. Dopo l'installazione, potrai utilizzare Thumbor come API per trasformare le immagini.
Introduzione
Installerai Thumbor su una VM che esegue Ubuntu 16.04. Ubuntu 16.04 è un'immagine molto comune e queste istruzioni sono pensate per funzionare su qualsiasi cloud provider. Creare una VM potrebbe sembrare più complicato rispetto all'installazione di Thumbor sulla tua macchina locale, ma i minuti che impieghi per creare una VM probabilmente ti faranno risparmiare ore o giorni di frustrazione cercando di installare correttamente Thumbor sulla tua macchina locale. Sebbene sia facile da usare, Thumbor è notoriamente difficile da installare, ma queste istruzioni semplificano il processo. Se le dipendenze vengono scaricate rapidamente, l'installazione può essere completata in 5-10 minuti.
Prerequisiti
Questo post presuppone che tu sappia come creare una VM Ubuntu 16.04 LTS su una piattaforma cloud come Google Cloud, AWS o Azure e come utilizzare gli strumenti a riga di comando per configurare la VM.
Installa dipendenze miniatura
Aggiorna ed esegui l'upgrade dei pacchetti già installati su Ubuntu:
sudo apt-get update -y && sudo apt-get upgrade -y
Installa pip
, il gestore di pacchetti per Python. Successivamente installerai Thumbor con pip
.
sudo apt-get install -y python-pip
Installa le dipendenze di Thumbor. La documentazione di Thumbor non menziona esplicitamente queste dipendenze, ma senza queste dipendenze non verrà installata correttamente.
# 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
Installa pollice
Installa Thumbor utilizzando pip.
sudo pip install thumbor
Se hai installato correttamente Thumbor, questa procedura dovrebbe funzionare:
thumbor --help
Esegui pollice
Esegui Pollicere. Il logging del debug è facoltativo, ma può essere utile quando inizi.
thumbor --log-level debug
Thumbor è ora in esecuzione.
Porta firewall aperta
Per impostazione predefinita, Thumbor viene eseguito sulla porta 8888. Se l'indirizzo IP della tua VM è 12.123.12.122
, accedi a Thumbor dal browser web all'indirizzo http://12.123.12.123:8888/.../$IMAGE
.
Tuttavia, probabilmente questa soluzione non funzionerà (ancora) perché i provider di servizi cloud di solito richiedono di aprire esplicitamente le porte del firewall prima che accettino il traffico in entrata.
Aggiorna il firewall in modo che esponga la porta 8888. Ecco maggiori informazioni su come eseguire questa operazione per: Google Cloud, AWS e Azure. Tieni presente che, per Google Cloud, devi prima assegnare un indirizzo IP statico alla tua VM e poi consentire una connessione HTTP esterna.
Provalo
Thumbor è ora accessibile e pronto per l'uso. Provalo al seguente URL:
http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg
Tieni presente che questo URL utilizza HTTP. Thumbor utilizza HTTP per impostazione predefinita, ma può essere configurato per l'utilizzo di HTTPS.
Dovresti vedere un'immagine di 100 pixel di larghezza per 100 pixel di altezza. Pollice ha acquisito l'immagine hero.jpg
e le dimensioni specificate nella stringa dell'URL e ha fornito il risultato. Puoi sostituire l'immagine nella stringa dell'URL (ad es. https://web.dev/install-thumbor/hero.jpg
) con qualsiasi altra immagine (ad es. https://your-site.com/cat.jpg
) e Mi piace ridimensioneranno anche quell'immagine.
L'articolo Ottimizza le immagini con Thumbor contiene ulteriori informazioni sull'utilizzo dell'API Thumbor. In particolare, potrebbe interessarti impostare un file di configurazione Thumbor.
Appendice: configurazione di Systemd
Questo passaggio spiega come assicurare che il processo Thumbor continui a essere eseguito, anche dopo il riavvio della VM. Questo passaggio è importante per i siti di produzione, ma facoltativo se usi Thumbor.
Systemd è il "gestore del sistema e del servizio" per sistemi operativi Linux. systemd
semplifica la configurazione dell'esecuzione dei servizi (processi).
Stai configurando systemd
in modo da avviare automaticamente Thumbor all'avvio della VM. Se la VM viene riavviata, verrà riavviato automaticamente anche il processo Thumbor. Questo metodo è molto più affidabile rispetto all'intervento dell'utente per avviare Thumbor.
Vai alla directory /lib/systemd/system
. Questa directory contiene i file di servizio per systemd
.
cd /lib/systemd/system
Come super user, crea un file thumbor.service
.
sudo touch thumbor.service
Utilizzando il tuo editor di testo preferito (vim e nano sono preinstallati su Ubuntu oppure puoi installare un altro editor), aggiungi la seguente configurazione a thumbor.service
. Questa configurazione eseguirà /usr/local/bin/thumbor
(ovvero il file binario Thumbor) una volta che il networking sarà disponibile e riavvierà Thumbor in caso di errore.
[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
è l'utilità utilizzata per gestire systemd
. Usa il comando start
per avviare Thumbor.
sudo systemctl start thumbor.service
Poi, "attiva" Pollice. Ciò significa che Thumbor si avvierà automaticamente all'avvio.
sudo systemctl enable thumbor.service
Verifica di aver configurato correttamente systemd
eseguendo il comando status
.
systemctl status thumbor.service
Se hai configurato correttamente thumbor.service per l'utilizzo di systemd
, lo stato dovrebbe indicare che è abilitato e attivo.