Revizuirea serverului JPEG.webpmini

Anonim

După ce am avut șansa de a testa și revizui software-ul JPEG.webpmini Pro, mi-am dat seama cât de puternic este acest software nu doar pentru exportul de imagini și pentru a face parte dintr-un flux de lucru Lightroom, ci și pentru multe alte utilizări, inclusiv optimizarea imaginilor care sunt deja așezate pe dispozitive de stocare mari. O altă utilizare la care m-am gândit imediat a fost serverul web de unde provine traficul Photography-Secret.com. Având în vedere cât de mult trafic servește Photography-Secret.com în întreaga lume în fiecare zi și faptul că doar imaginile reprezintă aproximativ 5 Terabytes de trafic pe lună, gândul de a putea comprima imaginile JPEG.webp folosind motorul JPEG.webpmini a fost ceva că am vrut cu adevărat să implementez mai devreme decât mai târziu Așa că m-am angajat într-un nou proiect - de a economisi atât trafic cât și bani pe termen lung pentru PL, folosind serverul JPEG.webpmini.

Fotografii Feriți-vă: aceasta este o revizuire foarte tehnică a software-ului care nu are legătură cu fotografia. Am decis să public recenzia la PL, întrucât consider că alte site-uri web foarte fotografice ar putea beneficia enorm din implementarea serverului JPEG.webpmini.

1) Prezentare generală a mediului serverului

Înainte de a intra în recenzie, aș dori să subliniez câteva informații potențial importante despre configurarea serverului meu web. În primul rând, rulez CentOS Linux pe fiecare server (și există câteva dintre ele). Cele două servere web back-end care gestionează apelurile PHP de la echilibrarea încărcării sunt locul în care am instalat serverul JPEG.webpmini, deși doar primul contează cu adevărat, deoarece este cel care gestionează toate încărcările pe site (WordPress nu poate gestiona acest lucru direct, deci este posibil doar să urmăriți apelurile wp-admin și să le direcționați către serverul corespunzător prin nginx / apache). Din păcate, nu există o modalitate ușoară de a rula mai mult de un server WordPress fără probleme de încărcare a fișierelor, deoarece nu este conceput pentru a fi utilizat într-un mediu cluster (mutând totul în AWS cu instanțe de server care rulează EC2, RDS care rulează DB și S3 se ocupă de fișierele ar fi o soluție bună, dar după ce am testat-o, nu a fost o soluție ieftină, mai ales odată ce ați început să generați câteva servere EC2 care să se ocupe de încărcarea back-end). Prin urmare, am sincronizat toate încărcările prin rsync. Nu este o soluție elegantă, dar funcționează destul de bine. Am rsync monitorizând folderul „wp-content”, deci toate modificările sunt reproduse într-un fel (practic, odată ce imaginile sunt încărcate pe server01, acestea sunt preluate automat de server02). Durează o secundă sau două pentru a se sincroniza, dar odată ce se întâmplă, imaginile sunt servite cu ușurință pentru a încărca solicitările de echilibrare.

Toate apelurile de pe serverul web sunt gestionate de un echilibrator de încărcare, care servește doar trafic web https. Toate imaginile sunt gestionate de un CDN extern. Principalul motiv pentru implementarea JPEG.webpmini a fost reducerea costurilor CDN, care cresc în fiecare lună doar pe măsură ce continuăm să publicăm mai mult conținut.

Rețineți că serverul dvs. web trebuie să ruleze o versiune Linux - serverul JPEG.webpmini nu rulează pe serverele Windows. Iată lista platformelor de server acceptate.

2) Instalarea serverului JPEG.webpmini

Instalarea serverului JPEG.webpmini este foarte ușoară, mai ales dacă rulați RHEL, CentOS și alte distribuții Linux populare. Pentru serverul meu CentOS, JPEG.webpmini a furnizat un fișier RPM, deci a fost o instalare ușoară cu o singură comandă. Odată ce fișierul binar a fost instalat (/ usr / bin / jpeg.webpmini în mod implicit), pasul următor a fost copierea fișierului de licență .jpeg.webpmini.cfg în directorul principal al utilizatorului. De acolo, rularea „jpeg.webpmini” ar trebui să producă ceva de genul următor:

===============================
Porniți jpeg.webpmini 3.14.2.84235
===============================
Este necesară opțiunea -f: -f =
Folosiți -help pentru ajutor

===============================
Finalizați jpeg.webpmini 3.14.2.84235
===============================

Testarea mea inițială a început cu serverul JPEG.webpmini versiunea 3.13, dar după câteva modificări solicitate pentru executabil, JPEG.webpmini a furnizat un fișier actualizat de 3.14 RPM. Adăugarea majoră la versiunea 3.14 este capacitatea de a sări peste fișierele deja optimizate, ceea ce a fost o mare problemă pentru mine, deoarece folosesc versiunea desktop a software-ului și nu am vrut ca serverul JPEG.webpmini să re-optimizeze imaginile JPEG.webp încărcate.

3) Gestionarea fișierelor imagine WordPress

Când o imagine este încărcată pe WordPress, scripturile de administrator vor folosi fie GD, fie ImageMagick pentru a procesa aceste imagini. În mod implicit, WordPress creează imagini de trei dimensiuni, în plus față de imaginea încărcată (miniatură, dimensiune medie și dimensiune mare), dar în funcție de câte apeluri add_image_size ar putea fi adăugate de temă și pluginuri, ar putea fi multe altele! Din acest motiv, o singură încărcare de imagine ar putea genera o grămadă de fișiere pe server, lăsând folderul Încărcări să crească foarte repede. Și acele imagini mai mici sunt create fie de GD, fie de ImageMagick, astfel încât fișierele implicit vor fi eliminate atât de profilurile de culoare ICC, cât și de datele EXIF, ceea ce nu este de dorit pe un site de fotografie. De asemenea, acestea nu vor fi optimizate corespunzător pentru dimensiune, deoarece nici GD, nici ImageMagick nu au un algoritm inteligent precum JPEG.webpmini pentru a putea comprima corect imaginile JPEG.webp. De fapt, WordPress face o treabă destul de oribilă prin redimensionarea imaginilor, rezultând adesea în imagini slab colorate (datorită dezlipirii profilurilor ICC), imagini moi și noroioase (datorită compresiei puternice). Pentru a evita această problemă la PL, am folosit ImageMagick doar pentru a optimiza imaginile, cu opțiuni speciale. Eliminăm doar datele EXIF ​​din miniaturi și le comprimăm puțin mai agresiv pentru o experiență de navigare rapidă. Odată ajuns într-o postare, nici profilurile ICC, nici datele EXIF ​​nu sunt eliminate din imagini mai mari pentru a le face să arate cât mai bine posibil. În acest fel, nu ne forțăm cititorii să facă clic pe o imagine pentru a vedea „versiunea corectă” - imaginile arată uniform de la previzualizări la dimensiuni încărcate native.

Prin urmare, pentru a profita din plin de serverul JPEG.webpmini, cel mai bine este să rulați executabilul pentru fiecare proces de redimensionare - nu doar pentru versiunea încărcată, deoarece doriți ca fiecare fișier să fie optimizat de motor, indiferent dacă este un miniatură, o versiune medie sau mare a originalului. Acest lucru înseamnă, în esență, că JPEG.webpmini ar trebui să intercepteze fiecare apel la image_resize.

4) Server JPEG.webpmini și integrare WordPress

Din păcate, JPEG.webpmini nu oferă un plugin care se integrează automat în WordPress pentru a face acest lucru, așa că a trebuit să vin cu o soluție pe cont propriu. Am început cu baza de cod a pluginului ImageMagick Engine (un plugin destul de depășit, dar încă funcționează), apoi am adăugat apeluri la executabilul JPEG.webpmini în funcția ime_im_cli_resize (rulez o versiune de linie de comandă a ImageMagick în locul unui modul PHP). Dacă această versiune modificată a pluginului este ceva care vă interesează, anunțați-mă în secțiunea de comentarii de mai jos și vă voi trimite fișierul plugin. Nu sunt sigur dacă oamenii de la JPEG.webpmini intenționează să lanseze un plugin WordPress, dar aș fi fericit să contribuie cu un cod pentru o cauză bună.

Codul funcționează și a fost testat cu JPEG.webpmini 3.14. De îndată ce fiecare versiune redimensionată este creată, codul optimizează mai întâi acele imagini, apoi optimizează și suprascrie imaginea JPEG.webp originală.

5) Rezultatele testului serverului JPEG.webpmini

Până în prezent au existat multe mumbo jumbo tehnice, așa că să trecem la carne. Cât spațiu pe unitate am putut salva și cât am economisit în costurile CDN? Pentru a rula executabilul JPEG.webpmini recursiv pe fiecare folder, a trebuit să solicit un script de la inginerii JPEG.webpmini, pe care i-au furnizat-o foarte repede. Fișierul furnizat a fost un script Python numit „jpeg.webpmini_recursive.py”, care avea nevoie doar de două comenzi - una pentru a introduce folderul sursă și una pentru a introduce folderul țintă (am modificat scriptul puțin după ce am primit noua versiune RPM care poate sări automat imagini JPEG.webp deja optimizate). După ce am făcut backup pentru toate, am creat un folder numit „uploads_jpeg.webpmini” și asta am folosit ca folder țintă. Am rulat scenariul și a durat ceva timp să trec prin fiecare fișier. M-am întors după câteva ore și scenariul s-a terminat de executat.

Deoarece JPEG.webpmini optimizează doar imaginile JPEG.webp și nu atinge PNG, GIF sau alte încărcări de fișiere, cum ar fi video, a trebuit să mă asigur că copiez folderul rezultat în dosarul meu de încărcare. Din nou, asigurați-vă că faceți o copie de rezervă completă a tuturor înainte de a face acest pas, deoarece este ireversibil. Înainte de a face asta, am modificat recursiv permisiunile pentru folderul uploads_jpeg.webpmini executând „chown -R anyone: anyone / uploads_jpeg.webpmini”. Apoi următoarea comandă a fost „/ bin / cp -Rpf uploads_jpeg.webpmini / * uploads /”, care a suprascris fișierele de imagine existente cu versiunile lor JPEG.webpmini optimizate.

Să aruncăm o privire la înainte și după. Iată cum arătau folderele mele înainte de a copia tot conținutul:

 

du --max-depth = 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 Dimensiune totală: 20.945.855

Aproximativ 21 de gigaocteți de imagini. Acum, să aruncăm o privire la aspectul dosarului după ce toate imaginile au fost optimizate de JPEG.webpmini:

 

du --max-depth = 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 Dimensiune totală: 14.375.944

Ei, acum sunt doar 14,4 gigaocteți! Doar doar pe spațiul de pe hard disk am reușit să recuperez peste 6,5 giguri de spațiu, ceea ce se traduce prin aproximativ 31% în economii de spațiu. Aceasta este practic o treime din factura mea CDN, care este un număr mare. Și rețineți că ultimii doi ani nu au obținut atât de multe economii de spațiu ca mai devreme, deoarece am început deja să-mi optimizez imaginile de pe desktop cu JPEG.webpmini Pro înainte de încărcare, astfel încât numerele pe care le vedeți sunt încărcate de alți membri ai echipei care nu folosesc JPEG.webpmini.

Iată un exemplu de raport rezumat de la JPEG.webpmini pentru iunie 2012:

----------------------------------
INFO: Raport sumar pentru folderul photographylife.com/wp-content/uploads/2012/06 (inclusiv subfoldere):
INFO: Numărul total de fișiere: 372
INFO: Dimensiunea totală a fișierelor de intrare: 42900 KB
INFO: Dimensiunea totală a fișierelor de ieșire: 28480 KB
INFO: Raport de recompresie: 1,51X (economie de 34%)
INFO: ----------------------------------

Diferite dosare au obținut numere diferite, dar în medie a fost între 30-35%, ceea ce este foarte mult, având în vedere că echipa noastră este destul de informată despre menținerea dimensiunilor fișierelor mici în timpul procesului de export (de obicei, păstrăm setările noastre de export la nivelul 10 în Photoshop , care este echivalent cu „Calitatea” 77-84% a Lightroom, conform articolului nostru privind nivelurile de compresie JPEG.webp din Photoshop și Lightroom).

5) Calitatea serverului JPEG.webpmini și setările de metadate

Pentru site-urile cărora nu le pasă neapărat păstrarea imaginilor JPEG.webp de înaltă calitate cu metadatele lor, JPEG.webpmini poate optimiza imaginile mult mai agresiv. Nu am vrut ca imaginile JPEG.webp să arate mai rău decât cele încărcate inițial, așa că am păstrat setarea implicită „qual = 0”, care păstrează cea mai bună calitate. Alte site-uri ar putea alege să ruleze cu calitate înaltă sau medie, ceea ce va reduce amprenta fișierelor JPEG.webp mult mai agresiv. De asemenea, se pot elimina complet toate metadatele și cu comanda „rmt = 1” și, dacă nu este suficient, există chiar și o opțiune de a forța ieșirea JPEG.webp progresivă pe fiecare imagine. Sunt sigur că site-urile de socializare precum Facebook utilizează puternic astfel de instrumente, deoarece imaginile și videoclipurile reprezintă o parte imensă a facturilor lor de găzduire. Pentru o listă de comenzi disponibile cu serverul JPEG.webpmini, vă rugăm să vizitați această pagină.

6. Concluzie

În timp ce produsul JPEG.webpmini Server nu se adresează cu siguranță fotografilor, software-ul este un instrument foarte versatil pentru cei care dețin site-uri web mari, cu o mulțime de imagini și trafic. După cum se poate vedea din proiectul meu de implementare, serverul JPEG.webpmini a reușit să economisească peste 6,5 gigaocteți de spațiu, ceea ce se traduce la aproximativ 31% în spațiu și economii de cost CDN, ceea ce este foarte mult pentru o afacere de orice dimensiune. La prețul inițial de 199 USD pe lună, serverul JPEG.webpmini nu este ieftin pentru o afacere mică, dar pentru o companie în creștere, cu o amprentă mare de găzduire, unde o singură instanță de server ar putea costa mai mult decât asta în fiecare lună, produsul ar putea merita o privire serioasă . Dacă faceți parte dintr-o companie de găzduire, dacă dețineți un site web încărcat cu o mulțime de imagini precum PL sau costurile CDN devin scandaloase, vă recomandăm să contactați oamenii de la JPEG.webpmini și să le discutați despre modul în care pot te ajut. Pentru început, ați putea încerca această pagină, unde puteți introduce site-ul dvs. web și puteți vedea cât de mult vă puteți aștepta să economisiți în costurile CDN.

Dacă aveți întrebări despre oricare dintre cele de mai sus, vă rugăm să nu ezitați să-mi trimiteți un comentariu mai jos.

Server JPEG.webpmini
  • Caracteristici- 100% / 100
  • Valoare- 100% / 100
  • Ușurință în utilizare- 80% / 100
  • Viteză și performanță- 100% / 100
  • Stabilitate- 100% / 100
  • A sustine- 100% / 100

Photography-Secret.com Evaluare generală

4.8- 96% / 100