Revisione del server JPEG.webpmini

Dopo aver avuto la possibilità di testare e rivedere il software JPEG.webpmini Pro, mi sono reso conto di quanto sia potente questo software non solo per esportare immagini e far parte di un flusso di lavoro di Lightroom, ma anche per molti altri usi, inclusa l'ottimizzazione delle immagini che sono già presenti sul nostro dispositivi di archiviazione di grandi dimensioni. Un altro utilizzo a cui ho subito pensato è stato il web server da cui proviene il traffico di Photography-Secret.com. Dato il traffico quotidiano che Photography-Secret.com serve in tutto il mondo e il fatto che le immagini da sole rappresentano circa 5 Terabyte di traffico al mese, l'idea di poter comprimere le immagini JPEG.webp utilizzando il motore JPEG.webpmini era qualcosa che volevo davvero implementare il prima possibile. Quindi ho intrapreso un nuovo progetto: risparmiare traffico e denaro a lungo termine per PL, utilizzando il server JPEG.webpmini.

Attenzione ai fotografi: questa è una recensione molto tecnica del software che non è correlato alla fotografia. Ho deciso di pubblicare la recensione su PL, poiché ritengo che altri siti Web ricchi di fotografie potrebbero trarre enormi vantaggi dall'implementazione del server JPEG.webpmini.

1) Panoramica dell'ambiente server

Prima di passare alla recensione, vorrei sottolineare alcune informazioni potenzialmente importanti sulla configurazione del mio server web. Prima di tutto, eseguo CentOS Linux su ogni server (e ce ne sono alcuni). I due server web back-end che gestiscono le chiamate PHP dal bilanciatore del carico sono dove ho installato il server JPEG.webpmini, anche se solo il primo conta davvero, in quanto è quello che gestisce tutti i caricamenti sul sito (WordPress non può gestirlo direttamente, quindi è possibile solo controllare le chiamate wp-admin e indirizzarle al server appropriato tramite nginx / apache). Sfortunatamente, non esiste un modo semplice per eseguire più di un server WordPress senza problemi di caricamento di file, poiché non è progettato per essere utilizzato in un ambiente cluster (spostando tutto in AWS con EC2 che esegue istanze del server, RDS che esegue il DB e S3 che gestisce il i file sarebbero una buona soluzione, ma dopo averlo testato, non era affatto una soluzione economica, specialmente una volta che hai iniziato a generare alcuni server EC2 che avrebbero gestito il carico di back-end). Pertanto, ho sincronizzato tutti i caricamenti tramite rsync. Non è una soluzione elegante, ma funziona abbastanza bene. Ho rsync che monitora la cartella "wp-content", quindi tutte le modifiche vengono replicate in un modo (in pratica, una volta che le immagini vengono caricate su server01, vengono automaticamente raccolte da server02). La sincronizzazione richiede uno o due secondi, ma una volta eseguita, le immagini vengono fornite facilmente per le richieste di bilanciamento del carico.

Tutte le chiamate al server web vengono gestite da un bilanciatore del carico, che serve solo il traffico web https. Tutte le immagini sono gestite da un CDN esterno. Il motivo principale per l'implementazione di JPEG.webpmini è stata la riduzione dei costi CDN, che aumentano solo ogni mese mentre continuiamo a pubblicare più contenuti.

Tieni presente che il tuo server web deve eseguire una versione di Linux: il server JPEG.webpmini non funziona sui server Windows. Ecco l'elenco delle piattaforme server supportate.

2) Installazione di JPEG.webpmini Server

L'installazione del server JPEG.webpmini è molto semplice, soprattutto se esegui RHEL, CentOS e altre popolari distribuzioni Linux. Per il mio server CentOS, JPEG.webpmini ha fornito un file RPM, quindi è stata un'installazione facile con un singolo comando. Una volta installato il file binario (/ usr / bin / jpeg.webpmini per impostazione predefinita), il passaggio successivo è stato quello di copiare il file di licenza .jpeg.webpmini.cfg nella directory home dell'utente. Da lì, l'esecuzione di "jpeg.webpmini" dovrebbe produrre qualcosa di simile al seguente:

===============================
Avvia jpeg.webpmini 3.14.2.84235
===============================
L'opzione -f è richiesta: -f =
Usa -help per aiuto

===============================
Termina jpeg.webpmini 3.14.2.84235
===============================

Il mio test iniziale è iniziato con la versione 3.13 del server JPEG.webpmini, ma dopo alcune modifiche richieste all'eseguibile, JPEG.webpmini ha fornito un file RPM 3.14 aggiornato. L'aggiunta principale alla versione 3.14 è la possibilità di saltare i file già ottimizzati, che è stato un grosso problema per me, poiché utilizzo la versione desktop del software e non volevo che il server JPEG.webpmini ri-ottimizzasse le immagini JPEG.webp caricate.

3) Gestione dei file di immagine di WordPress

Quando un'immagine viene caricata su WordPress, gli script di amministrazione utilizzeranno GD o ImageMagick per elaborare quelle immagini. Per impostazione predefinita, WordPress crea immagini di tre dimensioni, oltre all'immagine caricata (miniatura, dimensione media e dimensione grande), ma a seconda di quante chiamate add_image_size potrebbero essere aggiunte dal tema e dai plugin, potrebbero essercene molte di più! Per questo motivo, un caricamento di una singola immagine potrebbe generare una serie di file sul server, consentendo alla cartella Caricamenti di crescere molto rapidamente. E quelle immagini più piccole vengono create da GD o ImageMagick, quindi i file per impostazione predefinita verranno privati ​​sia dei profili colore ICC che dei dati EXIF, il che non è desiderabile su un sito Web di fotografia. Inoltre non saranno adeguatamente ottimizzati per le dimensioni, poiché né GD né ImageMagick hanno un algoritmo intelligente come JPEG.webpmini per essere in grado di comprimere correttamente le immagini JPEG.webp. In effetti, WordPress fa un lavoro piuttosto orribile con il ridimensionamento delle immagini, spesso con il risultato di immagini scarsamente colorate (a causa della rimozione dei profili ICC), morbide e confuse (a causa della forte compressione). Per evitare questo problema in PL, ho utilizzato ImageMagick solo per ottimizzare le immagini, con opzioni speciali. Rimuoviamo solo i dati EXIF ​​dalle miniature e li comprimiamo in modo un po 'più aggressivo per un'esperienza di navigazione veloce. Una volta in un post, né i profili ICC né i dati EXIF ​​vengono rimossi dalle immagini più grandi per renderle il più belle possibile. In questo modo, non costringiamo i nostri lettori a fare clic su un'immagine per vedere la "versione giusta": le immagini sembrano coerenti dalle anteprime alle dimensioni native caricate.

Pertanto, per sfruttare appieno il server JPEG.webpmini, è meglio eseguire l'eseguibile per ogni processo di ridimensionamento, non solo per la singola versione caricata, poiché si desidera che ogni file venga ottimizzato dal motore, sia che si tratti di un miniatura, una versione media o grande dell'originale. Ciò significa essenzialmente che JPEG.webpmini dovrebbe intercettare ogni chiamata a image_resize.

4) JPEG.webpmini Server e integrazione con WordPress

Sfortunatamente, JPEG.webpmini non fornisce un plugin che si integra automaticamente in WordPress per farlo, quindi ho dovuto trovare una soluzione da solo. Ho iniziato con il codebase del plugin ImageMagick Engine (un plugin piuttosto obsoleto, ma funziona ancora), quindi ho aggiunto le chiamate all'eseguibile JPEG.webpmini nella funzione ime_im_cli_resize (eseguo una versione a riga di comando di ImageMagick invece di un modulo PHP). Se questa versione modificata del plugin è qualcosa che ti interessa, fammelo sapere nella sezione commenti qui sotto e ti invierò il file del plugin. Non sono sicuro che la gente di JPEG.webpmini stia pianificando di rilasciare un plugin per WordPress, ma sarei felice di contribuire con del codice per una buona causa.

Il codice funziona ed è stato testato con JPEG.webpmini 3.14. Non appena viene creata ogni versione ridimensionata, il codice prima ottimizza quelle immagini, quindi ottimizza e sovrascrive l'immagine JPEG.webp originale.

5) Risultati del test del server JPEG.webpmini

Finora ci sono stati molti mumbo jumbo tecnici, quindi passiamo alla carne. Quanto spazio su disco sono riuscito a recuperare e quanto ho risparmiato sui costi della CDN? Per eseguire l'eseguibile JPEG.webpmini in modo ricorsivo su ogni cartella, ho dovuto richiedere uno script agli ingegneri JPEG.webpmini, che hanno fornito molto rapidamente. Il file fornito era uno script Python chiamato "jpeg.webpmini_recursive.py", che necessitava solo di due comandi: uno per inserire la cartella di origine e uno per inserire la cartella di destinazione (ho modificato un po 'lo script dopo aver ottenuto la nuova versione RPM che può saltare automaticamente immagini JPEG.webp già ottimizzate). Dopo aver eseguito il backup di tutto, ho creato una cartella chiamata "uploads_jpeg.webpmini" ed è quella che ho usato come cartella di destinazione. Ho eseguito lo script e ci è voluto un po 'per esaminare ogni singolo file. Sono tornato dopo poche ore e l'esecuzione dello script è terminata.

Poiché JPEG.webpmini ottimizza solo le immagini JPEG.webp e non tocca PNG, GIF o altri caricamenti di file come i video, ho dovuto assicurarmi di copiare la cartella risultante nella mia cartella dei caricamenti. Ancora una volta, assicurati di eseguire il backup completo di tutto prima di eseguire questo passaggio, poiché è irreversibile. Prima di farlo, ho cambiato in modo ricorsivo i permessi sulla cartella uploads_jpeg.webpmini eseguendo "chown -R nobody: nobody / uploads_jpeg.webpmini". Quindi il comando successivo era "/ bin / cp -Rpf uploads_jpeg.webpmini / * uploads /", che sovrascriveva i file di immagine esistenti con le loro versioni ottimizzate per JPEG.webpmini.

Diamo un'occhiata al prima e al dopo. Ecco come apparivano le mie cartelle prima di copiare tutti i contenuti:

 

du --max-profondità = 1 | sort -k2 1252 ./2006 5272 ./2007 23332 ./2008 154872 ./2009 819580 ./2010 599084 ./2011 2124952 ./2012 2176548 ./2013 4504720 ./2014 6164472 ./2015 3812759 ./2016 559012 ./ 2017 Dimensione totale: 20.945.855

Circa 21 gigabyte di immagini. Ora diamo un'occhiata a come appariva la cartella dopo che tutte le immagini sono state ottimizzate da JPEG.webpmini:

 

du --max-profondità = 1 | sort -k2 1000 ./2006 2852 ./2007 15972 ./2008 127708 ./2009 647896 ./2010 461800 ./2011 1099676 ./2012 1252836 ./2013 3049696 ./2014 4378464 ./2015 2858628 ./2016 479416 ./ 2017 Dimensione totale: 14.375.944

Whoa, ora sono solo 14,4 gigabyte! Solo nello spazio su disco rigido sono stato in grado di recuperare oltre 6,5 GB di spazio, il che si traduce in circa il 31% di risparmio di spazio. Questo è fondamentalmente un terzo della mia bolletta CDN, che è un numero elevato. E tieni presente che negli ultimi due + anni non ho risparmiato tanto spazio quanto in precedenza, dal momento che ho già iniziato a ottimizzare le mie immagini sul mio desktop con JPEG.webpmini Pro prima del caricamento, quindi i numeri che vedi sono caricamenti di altri membri del team che non utilizzano JPEG.webpmini.

Ecco un esempio di rapporto di riepilogo di JPEG.webpmini per giugno 2012:

----------------------------------
INFORMAZIONI: rapporto di riepilogo per la cartella photographylife.com/wp-content/uploads/2012/06 (comprese le sottocartelle):
INFO: numero totale di file: 372
INFO: Dimensione totale dei file di input: 42900 KB
INFO: dimensione totale dei file di output: 28480 KB
INFO: Rapporto di ricompressione: 1.51X (risparmio del 34%)
INFORMAZIONI: ----------------------------------

Diverse cartelle hanno prodotto numeri diversi, ma in media era compreso tra il 30 e il 35%, che è molto, considerando che il nostro team è abbastanza informato su come mantenere piccole le dimensioni dei file durante il processo di esportazione (di solito manteniamo le nostre impostazioni di esportazione al livello 10 in Photoshop , che è equivalente alla "Qualità" del 77-84% di Lightroom, secondo i nostri livelli di compressione JPEG.webp in Photoshop e articolo Lightroom).

5) Impostazioni di qualità e metadati di JPEG.webpmini Server

Per i siti che non si preoccupano necessariamente di preservare immagini JPEG.webp di alta qualità con i loro metadati, JPEG.webpmini può effettivamente ottimizzare le immagini in modo molto più aggressivo. Non volevo che le immagini JPEG.webp avessero un aspetto peggiore di quello originariamente caricato, quindi ho mantenuto l'impostazione predefinita "qual = 0", che preserva la migliore qualità. Altri siti potrebbero scegliere di funzionare con qualità alta o media, il che ridurrà l'impronta dei file JPEG.webp in modo molto più aggressivo. Inoltre, si possono rimuovere completamente anche tutti i metadati con il comando "rmt = 1" e se ciò non bastasse, c'è anche un'opzione per forzare l'output JPEG.webp progressivo su ogni immagine. Sono sicuro che i siti di social media come Facebook utilizzano ampiamente tali strumenti, dal momento che immagini e video sono una parte enorme delle loro bollette di hosting. Per un elenco dei comandi disponibili con il server JPEG.webpmini, visitare questa pagina.

6. Conclusione

Sebbene il prodotto JPEG.webpmini Server non sia sicuramente rivolto ai fotografi, il software è uno strumento molto versatile per coloro che possiedono siti Web di grandi dimensioni con molte immagini e traffico. Come si può vedere dal mio progetto di implementazione, JPEG.webpmini Server è stato in grado di risparmiare oltre 6,5 gigabyte di spazio, traducendosi in circa il 31% di spazio e risparmi sui costi CDN, che è molto per un'azienda di qualsiasi dimensione. Con un prezzo di partenza di $ 199 al mese, JPEG.webpmini Server non è economico per una piccola impresa, ma per un'azienda in crescita con un ampio footprint di hosting in cui una singola istanza di server potrebbe costare più di quella ogni mese, il prodotto potrebbe valere la pena dare un'occhiata seria . Se fai parte di una società di hosting, se possiedi un sito web caricato con molte immagini come PL, oi tuoi costi CDN stanno diventando oltraggiosi, potresti voler contattare la gente di JPEG.webpmini e parlare con loro di come possono Aiutarti. Per cominciare, potresti provare questa pagina, dove puoi inserire il tuo sito web e vedere quanto puoi aspettarti di risparmiare sui costi CDN.

Se hai domande su uno qualsiasi dei precedenti, non esitare a inviarmi un commento qui sotto.

JPEG.webpmini Server
  • Caratteristiche- 100% / 100
  • Valore- 100% / 100
  • Facilità di utilizzo- 80% / 100
  • Velocità e prestazioni- 100% / 100
  • Stabilità- 100% / 100
  • Supporto- 100% / 100

Photography-Secret.com Valutazione complessiva

4.8- 96% / 100

Articoli interessanti...