Pregled JPEG.webpmini poslužitelja

Anonim

Nakon što sam imao priliku testirati i pregledati JPEG.webpmini Pro softver, shvatio sam koliko je moćan ovaj softver ne samo za izvoz slika i dio procesa rada Lightroom, već i za mnoge druge namjene, uključujući optimizaciju slika koje već sjede na našem veliki uređaji za pohranu. Još jedna upotreba na koju sam se odmah sjetio bio je web poslužitelj odakle potječe promet Photography-Secret.com. S obzirom na to koliko prometa Photo-Secret.com svakodnevno opslužuje širom svijeta i činjenicu da samo slike čine otprilike 5 Terabajta prometa mjesečno, pomisao na mogućnost kompresije JPEG.webp slika pomoću JPEG.webpmini motora bila je nešto koju sam stvarno želio provesti prije nego kasnije. Stoga sam započeo novi projekt - dugoročno uštedjeti i promet i novac za PL, koristeći JPEG.webpmini poslužitelj.

Fotografi, pazite: ovo je vrlo tehnički pregled softvera koji nije povezan sa fotografijom. Odlučio sam objaviti recenziju na PL-u, jer smatram da bi druge web stranice s teškom fotografijom mogle imati velike koristi od implementacije JPEG.webpmini poslužitelja.

1) Pregled okoline poslužitelja

Prije nego što krenem u pregled, želio bih istaknuti nekoliko potencijalno važnih dijelova informacija o postavci mog web poslužitelja. Prije svega, pokrećem CentOS Linux na svim poslužiteljima (a ima ih nekoliko). Dva pozadinska web poslužitelja koja obrađuju PHP pozive iz uravnoteživača opterećenja je mjesto na kojem sam instalirao JPEG.webpmini poslužitelj, iako je samo prvi stvarno važan, jer je taj koji obrađuje sve prijenose na web mjesto (WordPress to ne može izravno riješiti, pa moguće je samo paziti na pozive wp-admin i usmjeriti ih na odgovarajući poslužitelj putem nginx / apache). Nažalost, nema jednostavnog načina za pokretanje više od jednog WordPress poslužitelja bez gnjavaže s prijenosom datoteka, jer nije dizajniran za upotrebu u klaster okruženju (premještanje svega na AWS s instancama poslužitelja EC2, RDS koji izvodi DB i S3 koji upravljaju datoteke bi bile dobro rješenje, ali nakon što sam ga isprobao, to ni na koji način nije bilo jeftino rješenje, pogotovo kad počnete mrijestiti nekoliko EC2 poslužitelja koji bi podnosili pozadinsko opterećenje). Stoga sinkroniziram sve prijenose putem rsync-a. Nije elegantno rješenje, ali djeluje prilično dobro. Imam rsync koji nadgleda mapu “wp-content”, tako da se sve promjene repliciraju na jedan način (u osnovi, nakon što se slike prenesu na server01, automatski ih pokupi server02). Sinkronizacija traje sekundu ili dvije, ali kad se to dogodi, slike se lako poslužuju za učitavanje zahtjeva za uravnoteženje.

Svim pozivima web poslužitelja upravlja uravnoteživač opterećenja, koji služi samo https web prometu. Sve slike obrađuje vanjski CDN. Glavni razlog za primjenu JPEG.webpminija bio je smanjenje troškova CDN-a, koji se povećavaju svaki mjesec jer nastavljamo objavljivati ​​više sadržaja.

Imajte na umu da vaš web poslužitelj mora imati okus Linuxa - JPEG.webpmini poslužitelj ne radi na Windows poslužiteljima. Evo popisa podržanih poslužiteljskih platformi.

2) Instalacija JPEG.webpmini poslužitelja

Instalacija JPEG.webpmini poslužitelja vrlo je jednostavna, pogotovo ako pokrećete RHEL, CentOS i druge popularne Linux distribucije. Za moj CentOS poslužitelj JPEG.webpmini je pružio RPM datoteku, tako da je to bila jednostavna instalacija s jednom naredbom. Nakon što je binarna datoteka instalirana (/ usr / bin / jpeg.webpmini prema zadanim postavkama), sljedeći je korak bio kopiranje datoteke .jpeg.webpmini.cfg u kućni direktorij korisnika. Odatle bi pokretanje "jpeg.webpmini" trebalo dati nešto poput sljedećeg:

===============================
Pokrenite jpeg.webpmini 3.14.2.84235
===============================
-f opcija je potrebna: -f =
Za pomoć upotrijebite -help

===============================
Završi jpeg.webpmini 3.14.2.84235
===============================

Moje početno testiranje započelo je s JPEG.webpmini poslužiteljem verzije 3.13, ali nakon nekoliko traženih promjena izvršne datoteke, JPEG.webpmini je pružio ažuriranu datoteku s 3,14 RPM. Glavni dodatak verziji 3.14 je mogućnost preskakanja već optimiziranih datoteka, što je za mene bilo veliko, jer koristim stolnu verziju softvera i nisam želio da JPEG.webpmini poslužitelj ponovno optimizira prenesene JPEG.webp slike.

3) Rukovanje WordPress slikovnom datotekom

Kada se slika prenese na WordPress, administrativne skripte će koristiti GD ili ImageMagick za obradu tih slika. Prema zadanim postavkama, WordPress stvara slike u tri veličine, pored prenesene slike (minijatura, srednja i velika veličina), no ovisno o tome koliko bi tema i dodataka moglo dodati add_image_size poziva, moglo bi ih biti mnogo više! Zbog toga bi jedan prijenos slike mogao stvoriti hrpu datoteka na poslužitelju, što bi mapi Prenosi omogućilo da raste vrlo brzo. A te manje slike kreiraju ili GD ili ImageMagick, tako da će se datotekama prema zadanim postavkama oduzeti i ICC profili boja i EXIF ​​podaci, što nije poželjno na web mjestu za fotografiranje. Također neće biti pravilno optimizirani za veličinu, jer ni GD ni ImageMagick nemaju pametni algoritam poput JPEG.webpmini kako bi mogli pravilno komprimirati JPEG.webp slike. Zapravo, WordPress radi prilično užasan posao s promjenom veličine slika, što često rezultira slabo obojenim (zbog uklanjanja ICC profila), mekim i blatnjavim slikama (zbog jake kompresije). Da bih izbjegao ovaj problem u PL-u, ImageMagick koristim samo za optimizaciju slika, s posebnim opcijama. EXIF podatke uklanjamo samo s minijatura i komprimiramo ih malo agresivnije radi brzog pregledavanja. Jednom u postu, ni ICC profili, ni EXIF ​​podaci ne uklanjaju se s većih slika kako bi izgledali što bolje. Na ovaj način ne prisiljavamo čitatelje da kliknu na sliku kako bi vidjeli "pravu verziju" - slike izgledaju dosljedno od pregleda do izvorno prenesenih veličina.

Stoga je, da biste u potpunosti iskoristili JPEG.webpmini poslužitelj, najbolje pokrenuti izvršnu datoteku za svaki postupak promjene veličine - ne samo za jednu učitanu verziju, jer želite da mehanizam optimizira svaku datoteku, bilo da se radi o minijatura, medij ili velika inačica originala. To u osnovi znači da bi JPEG.webpmini trebao presretati svaki poziv image_resize.

4) Integracija JPEG.webpmini poslužitelja i WordPressa

Nažalost, JPEG.webpmini ne nudi dodatak koji se automatski integrira u WordPress kako bi to učinio, pa sam morao sam doći do rješenja. Počeo sam s kodnom bazom dodataka ImageMagick Engine (prilično zastarjeli dodatak, ali i dalje funkcionira), a zatim sam dodao pozive u izvršnu datoteku JPEG.webpmini u funkciji ime_im_cli_resize (umjesto PHP modula pokrećem verziju ImageMagick naredbenog retka). Ako vas ova izmijenjena verzija dodatka zanima, javite mi u odjeljku za komentare u nastavku i poslat ću vam datoteku dodatka. Nisam siguran da li ljudi iz JPEG.webpmini planiraju objaviti WordPress dodatak, ali rado bih dao neki kôd za dobar cilj.

Kôd djeluje i testiran je s JPEG.webpmini 3.14. Čim se stvori svaka verzija s promjenom veličine, kod prvo optimizira te slike, a zatim optimizira i prepisuje izvornu JPEG.webp sliku.

5) Rezultati ispitivanja JPEG.webpmini poslužitelja

Do sada je bilo puno tehničkog mumbo džamba, pa krenimo na meso. Koliko sam prostora za pogon mogao spasiti i koliko sam uštedio u CDN troškovima? Kako bih rekurzivno pokrenuo izvršnu datoteku JPEG.webpmini na svakoj mapi, morao sam zatražiti skriptu od inženjera JPEG.webpmini, koju su oni dostavili vrlo brzo. Dostavljena datoteka bila je Python skripta pod nazivom "jpeg.webpmini_recursive.py", kojoj su trebale samo dvije naredbe - jedna za unos izvorne mape i jedna za unos ciljne mape (skriptu sam izmijenio malo nakon što sam nabavio novu RPM verziju koja može automatski preskočiti već optimizirane JPEG.webp slike). Nakon sigurnosne kopije svega, stvorio sam mapu nazvanu "uploads_jpeg.webpmini" i to sam koristio kao ciljnu mapu. Pokrenuo sam skriptu i trebalo mi je vremena da prođem kroz svaku datoteku. Vratio sam se nakon nekoliko sati i skripta je završila s izvršenjem.

Budući da JPEG.webpmini samo optimizira JPEG.webp slike i ne dodiruje prijenos datoteka PNG, GIF ili druge datoteke, poput videozapisa, rezultirajuću mapu morao sam kopirati natrag u mapu za prijenos. Opet, prije nego što poduzmete ovaj korak, svakako napravite sigurnosnu kopiju svega jer je nepovratan. Prije nego što sam to učinio, rekurzivno sam promijenio dozvole u mapi uploads_jpeg.webpmini pokretanjem "chown -R nobody: nobody / uploads_jpeg.webpmini". Tada je sljedeća naredba bila “/ bin / cp -Rpf uploads_jpeg.webpmini / * uploads /”, koja je prepisala postojeće slikovne datoteke sa svojim JPEG.webpmini optimiziranim verzijama.

Pogledajmo prije i poslije. Evo kako su izgledale moje mape prije nego što sam kopirao sav sadržaj:

 

du --max-dubina = 1 | sortiraj -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. godine Ukupna veličina: 20,945,855

Otprilike 21 gigabajt slika. Pogledajmo sada kako je izgledala mapa nakon što je JPEG.webpmini optimizirao sve slike:

 

du --max-dubina = 1 | sortiraj -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. godine Ukupna veličina: 14.375.944

Joj, to je sada samo 14,4 gigabajta! Samo u prostoru na tvrdom disku uspio sam povratiti preko 6,5 koncerta prostora, što znači oko 31% uštede prostora. To je u osnovi jedna trećina mog računa za CDN, što je velik broj. I imajte na umu da posljednje dvije i više godine nisu uštedjele toliko prostora kao ranije, jer sam već počeo prenositi slike na radnu površinu s JPEG.webpmini Pro prije prijenosa, tako da brojevi koje vidite prenose drugi članovi tima koji ne koriste JPEG.webpmini.

Evo primjera sažetog izvješća JPEG.webpmini-a za lipanj 2012. godine:

----------------------------------
INFO: Sažeti izvještaj za mapu photographylife.com/wp-content/uploads/2012/06 (uključujući podmape):
INFO: Ukupan broj datoteka: 372
INFO: Ukupna veličina ulaznih datoteka: 42900 KB
INFO: Ukupna veličina izlaznih datoteka: 28480 KB
INFO: Omjer rekompresije: 1,51X (34% uštede)
INFO: ----------------------------------

Različite mape donijele su različite brojeve, ali u prosjeku je to bilo između 30-35%, što je puno, s obzirom na to da je naš tim prilično upućen u održavanje malih veličina datoteka tijekom postupka izvoza (obično izvozne postavke držimo na razini 10 u Photoshopu , što je ekvivalentno Lightroom-ovoj 77-84% "kvalitete", prema našim JPEG.webp nivoima kompresije u Photoshopu i Lightroom-u).

5) Postavke kvalitete JPEG.webpmini poslužitelja i metapodataka

Za web stranice kojima nije nužno briga o očuvanju visokokvalitetnih JPEG.webp slika s njihovim metapodacima, JPEG.webpmini zapravo može mnogo agresivnije optimizirati slike. Nisam želio da JPEG.webp slike izgledaju gore od izvorno prenesenih, pa sam zadržao zadanu postavku "qual = 0", koja čuva najbolju kvalitetu. Druge web stranice mogu se odlučiti za prikazivanje s visokom ili srednjom kvalitetom, što će znatno agresivnije smanjiti otisak JPEG.webp datoteka. Također, u potpunosti možete ukloniti sve metapodatke naredbom "rmt = 1", a ako to nije dovoljno, postoji čak i opcija prisiljavanja progresivnog JPEG.webp izlaza na svaku sliku. Siguran sam da web stranice društvenih medija poput Facebooka u velikoj mjeri koriste takve alate, jer su slike i videozapisi ogroman dio njihovih računa za hosting. Za popis naredbi dostupnih na poslužitelju JPEG.webpmini posjetite ovu stranicu.

6) Zaključak

Iako proizvod JPEG.webpmini Server definitivno nije namijenjen fotografima, softver je vrlo svestran alat za one koji posjeduju velike web stranice s puno slika i prometa. Kao što se može vidjeti iz mog implementacijskog projekta, JPEG.webpmini Server uspio je uštedjeti više od 6,5 gigabajta prostora, što znači oko 31% prostora i uštedu troškova CDN-a, što je puno za poslovanje bilo koje veličine. S početnom cijenom od 199 dolara mjesečno, JPEG.webpmini Server nije jeftin za malu tvrtku, ali za rastuću tvrtku s velikim otiskom hostinga gdje pojedinačna instanca poslužitelja može koštati više od svakog mjeseca, proizvod bi mogao vrijediti ozbiljnog pogleda . Ako ste dio hosting tvrtke, ako posjedujete web mjesto natovareno s puno slika poput PL-a ili vaši CDN troškovi postaju nečuveni, možda biste željeli kontaktirati ljude iz JPEG.webpminija i razgovarati s njima o tome kako mogu pomoći ti. Za početak možete isprobati ovu stranicu, gdje možete unijeti svoje web mjesto i vidjeti koliko možete očekivati ​​da uštedite na CDN troškovima.

Ako imate bilo kakvih pitanja o bilo čemu od navedenog, slobodno mi dodajte komentar u nastavku.

JPEG.webpmini poslužitelj
  • Značajke- 100% / 100
  • Vrijednost- 100% / 100
  • Jednostavnost korištenja- 80% / 100
  • Brzina i performanse- 100% / 100
  • Stabilnost- 100% / 100
  • Podrška- 100% / 100

Photography-Secret.com Ukupna ocjena

4.8- 96% / 100