Il pollice può essere utilizzato senza costi per ridimensionare, comprimere e trasformare le immagini on demand.
Le immagini CDN consentono di ottimizzare facilmente e in modo dinamico l'estetica e le prestazioni delle immagini. A differenza della maggior parte delle 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; sia Wikipedia che Square utilizzano entrambi Thumbor.
Questa guida spiega come installare Thumbor sul tuo server. Dopo l'installazione potrai utilizzare Thumbor come API per trasformare le tue immagini.
Introduzione
Stai installando Thumbor su una VM con Ubuntu 16.04. Ubuntu 16.04 è un'immagine molto comune e queste istruzioni sono pensate per funzionare su qualsiasi cloud provider. La creazione di una VM potrebbe sembrare più impegnativa dell'installazione di Thumbor sulla tua macchina locale, ma i minuti spesi per creare una VM ti faranno risparmiare ore o giorni di frustrazione nel cercare di far 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 Thumbor
Aggiorna ed esegui l'upgrade dei pacchetti già installati di Ubuntu:
sudo apt-get update -y && sudo apt-get upgrade -y
Installa pip
, il gestore di pacchetti per Python. In seguito 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 Thumbor non esegue correttamente l'installazione senza di esse.
# 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 Thumbor
Installa Thumbor utilizzando pip.
sudo pip install thumbor
Se hai installato correttamente Thumbor, dovrebbe funzionare:
thumbor --help
Esegui Thumbor
Esegui Thumbor. Il logging del debug è facoltativo, ma può essere utile quando inizi.
thumbor --log-level debug
L'app Mi piace è 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, questo probabilmente non funzionerà per te (ancora) perché i cloud provider di solito richiedono di aprire esplicitamente le porte del firewall prima di accettare il traffico in entrata.
Aggiorna il firewall per esporre la porta 8888. Ecco ulteriori 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.
Provala
Il pollice è ora accessibile e pronto per l'uso. Provala visitando il seguente URL:
http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg
Tieni presente che questo URL utilizza HTTP. Il pollice utilizza HTTP per impostazione predefinita, ma può essere configurato per l'utilizzo di HTTPS.
Dovrebbe essere visualizzata un'immagine di 100 pixel di larghezza per 100 pixel di altezza. Mi piace ha preso l'immagine hero.jpg
e le dimensioni specificate nella stringa URL e ha restituito 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 l'immagine.
L'articolo Ottimizzare le immagini con Thumbor contiene ulteriori informazioni sull'utilizzo dell'API Thumbor. In particolare, ti potrebbe interessare impostare un file di configurazione di Thumbor.
Appendice: Configurazione di Systemd
Questo passaggio spiega come assicurarsi che il processo Thumbor continui in esecuzione, anche dopo il riavvio della VM. Questo passaggio è importante per i siti di produzione, ma è facoltativo se vuoi usare Thumbor.
Systemd è il "gestore di sistema e servizio" per i sistemi operativi Linux. systemd
semplifica la configurazione dell'esecuzione dei servizi (processi).
Configurerai systemd
per avviare automaticamente Thumbor all'avvio della VM. Se la VM viene riavviata, anche il processo Thumbor viene riavviato automaticamente. Questo è molto più affidabile che fare affidamento sull'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 programma binario Thumbor) quando 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
Quindi, "attiva" il pollice. Ciò significa che Thumbor si avvia 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.