Poté, co jsem měl příležitost otestovat a zkontrolovat software JPEG.webpmini Pro, jsem si uvědomil, jak mocný tento software není jen pro export obrázků a je součástí pracovního postupu Lightroom, ale také pro mnoho dalších použití, včetně optimalizace obrázků, které již na našem webu sedí velká úložná zařízení. Dalším použitím, které mě okamžitě napadlo, byl webový server, odkud pochází provoz Photography-Secret.com. Vzhledem k tomu, kolik provozu Photography-Secret.com každodenně obsluhuje po celém světě, a vzhledem k tomu, že samotné obrázky představují zhruba 5 terabajtů provozu za měsíc, byla myšlenka možnosti komprimovat obrázky JPEG.webp pomocí enginu JPEG.webpmini něco které jsem opravdu chtěl implementovat dříve než později. Tak jsem se pustil do nového projektu - ušetřit jak provoz, tak peníze z dlouhodobého hlediska pro PL, pomocí serveru JPEG.webpmini.
Fotografové pozor: toto je velmi technická recenze softwaru, který nesouvisí s fotografií. Rozhodl jsem se zveřejnit recenzi na PL, protože mám pocit, že implementace serveru JPEG.webpmini by mohla obrovsky těžit z jiných webových stránek náročných na fotografování.
1) Přehled prostředí serveru
Než se pustím do kontroly, chtěl bych poukázat na několik potenciálně důležitých informací o nastavení mého webového serveru. Nejprve spustím CentOS Linux na každém serveru (a je jich pár). Na dvou back-endových webových serverech, které zpracovávají volání PHP z nástroje pro vyrovnávání zatížení, jsem nainstaloval server JPEG.webpmini, i když opravdu záleží jen na prvním, protože právě ten zpracovává všechna nahrávání na web (WordPress to nedokáže zpracovat přímo, takže je možné sledovat pouze volání wp-admin a nasměrovat je na příslušný server pomocí nginx / apache). Bohužel neexistuje snadný způsob, jak spustit více než jeden server WordPress bez potíží s nahráváním souborů, protože není navržen pro použití v prostředí clusteru (přesunutí všeho na AWS s instancemi serveru běžícího na EC2, RDS se spuštěním DB a S3 zpracovávající soubory by byly dobrým řešením, ale poté, co jsem to vyzkoušel, to v žádném případě nebylo levným řešením, zvláště když začnete vytvářet několik serverů EC2, které by zvládly back-end zatížení). Proto synchronizuji všechna nahrávání pomocí rsync. Není to elegantní řešení, ale funguje docela dobře. Sleduji složku „wp-content“ pomocí rsync, takže všechny změny se replikují jedním způsobem (v zásadě, jakmile se obrázky nahrají na server01, automaticky je vyzvedne server02). Synchronizace trvá sekundu nebo dvě, ale jakmile k tomu dojde, obrázky se snadno obslouží k načtení požadavků nástroje pro vyrovnávání.
Všechna volání webového serveru jsou zpracovávána nástrojem pro vyrovnávání zatížení, který slouží pouze k webovému provozu https. Všechny obrázky zpracovává externí CDN. Hlavním důvodem pro implementaci JPEG.webpmini bylo snížení nákladů na CDN, které rostou jen každý měsíc, protože pokračujeme v publikování dalšího obsahu.
Mějte na paměti, že váš webový server musí používat systém Linux - server JPEG.webpmini nefunguje na serverech Windows. Zde je seznam podporovaných serverových platforem.
2) Instalace serveru JPEG.webpmini
Instalace serveru JPEG.webpmini je velmi snadná, zvláště pokud používáte RHEL, CentOS a další populární linuxové distribuce. Pro můj server CentOS poskytl JPEG.webpmini soubor RPM, takže to byla snadná instalace pomocí jediného příkazu. Jakmile byl nainstalován binární soubor (ve výchozím nastavení / usr / bin / jpeg.webpmini), dalším krokem bylo zkopírování licenčního souboru .jpeg.webpmini.cfg do domovského adresáře uživatele. Odtud by spuštění příkazu „jpeg.webpmini“ mělo vygenerovat něco jako následující:
===============================
Spusťte jpeg.webpmini 3.14.2.84235
===============================
Je vyžadována volba -f: -f =
Použijte -help pro pomoc
===============================
Dokončete jpeg.webpmini 3.14.2.84235
===============================
Moje počáteční testování začalo u serveru JPEG.webpmini verze 3.13, ale po několika požadovaných změnách spustitelného souboru poskytl JPEG.webpmini aktualizovaný soubor 3,14 RPM. Hlavním přírůstkem verze 3.14 je schopnost přeskočit již optimalizované soubory, což pro mě byla velká věc, protože používám desktopovou verzi softwaru a nechtěl jsem, aby server JPEG.webpmini znovu optimalizoval nahrané obrázky JPEG.webp.
3) Zpracování obrazových souborů WordPress
Když se obrázek nahraje na WordPress, skripty správce ke zpracování těchto obrázků použijí GD nebo ImageMagick. Ve výchozím nastavení WordPress vytváří kromě nahraného obrázku (miniatura, střední a velká velikost) obrázky tří velikostí, ale v závislosti na tom, kolik volání add_image_size může téma a doplňky přidat, může jich být mnohem více! Z tohoto důvodu by nahrávání jednoho obrázku mohlo na serveru způsobit spoustu souborů a nechat složku Uploads velmi rychle růst. A ty menší obrázky jsou vytvářeny buď GD nebo ImageMagick, takže soubory ve výchozím nastavení budou zbaveny jak barevných profilů ICC, tak dat EXIF, což není na fotografickém webu žádoucí. Rovněž nebudou správně optimalizovány na velikost, protože ani GD, ani ImageMagick nemají inteligentní algoritmus jako JPEG.webpmini, aby bylo možné správně komprimovat obrázky JPEG.webp. WordPress ve skutečnosti dělá velmi hroznou práci se změnou velikosti obrázků, což často vede ke špatně zbarveným (kvůli odizolování profilů ICC), měkkým a blátivým obrázkům (kvůli silné kompresi). Abych se tomuto problému na PL vyhnul, používám ImageMagick k optimalizaci obrázků pouze se speciálními možnostmi. Vyjmeme pouze data EXIF z miniatur a pro rychlejší procházení je o něco agresivnější. Jakmile jsou v příspěvku, nejsou z větších obrázků odstraněny ani profily ICC, ani data EXIF, aby vypadaly co nejlépe. Tímto způsobem nenutí naše čtenáře kliknout na obrázek, aby viděli „správnou verzi“ - obrázky vypadají konzistentně od náhledů po nativní nahrané velikosti.
Proto, abyste plně využili výhody serveru JPEG.webpmini, je nejlepší spustit spustitelný soubor pro každý proces změny velikosti - nejen pro jednu nahranou verzi, protože chcete, aby byl každý soubor optimalizován motorem, ať už jde o miniatura, střední nebo velká verze originálu. To v podstatě znamená, že JPEG.webpmini by mělo zachytávat každé volání image_resize.
4) Integrace serveru JPEG.webpmini a WordPress
JPEG.webpmini bohužel neposkytuje plugin, který se k tomu automaticky integruje do WordPressu, takže jsem musel sám přijít s řešením. Začal jsem s codebase pluginu ImageMagick Engine (docela zastaralý plugin, ale stále to funguje), poté jsem přidal volání spustitelného souboru JPEG.webpmini ve funkci ime_im_cli_resize (místo modulu PHP spustím verzi ImageMagick z příkazového řádku). Pokud vás tato upravená verze pluginu zajímá, dejte mi vědět v sekci komentáře níže a já vám pošlu soubor pluginu. Nejsem si jistý, jestli lidé v JPEG.webpmini plánují vydat plugin WordPress, ale rád bych přispěl nějakým kódem pro dobrou věc.
Kód funguje a byl testován s JPEG.webpmini 3.14. Jakmile je vytvořena každá verze se změněnou velikostí, kód nejprve tyto obrázky optimalizuje, poté optimalizuje a přepíše původní obrázek JPEG.webp.
5) Výsledky testu serveru JPEG.webpmini
Zatím tam bylo hodně technických mumbo jumbo, tak pojďme dolů k masu. Kolik místa na disku jsem dokázal zachránit a kolik jsem ušetřil na nákladech CDN? Aby bylo možné spustit spustitelný soubor JPEG.webpmini rekurzivně v každé složce, musel jsem požádat o skript od inženýrů JPEG.webpmini, který poskytli velmi rychle. Poskytnutým souborem byl skript Pythonu s názvem „jpeg.webpmini_recursive.py“, který potřeboval pouze dva příkazy - jeden pro zadání zdrojové složky a druhý pro zadání cílové složky (skript jsem trochu upravil po získání nové verze RPM, která může automaticky přeskočit již optimalizované obrázky JPEG.webp). Po zálohování všeho jsem vytvořil složku nazvanou „uploads_jpeg.webpmini“ a to jsem použil jako cílovou složku. Spustil jsem skript a chvíli trvalo projít každým souborem. Vrátil jsem se po několika hodinách a skript se dokončil.
Vzhledem k tomu, že JPEG.webpmini optimalizuje pouze obrázky JPEG.webp a nedotýká se nahrávání souborů PNG, GIF ani jiných souborů, například videa, musel jsem se ujistit, že výslednou složku zkopírujete zpět do mé složky pro nahrávání. Před provedením tohoto kroku se ujistěte, že jste vše plně zálohovali, protože je nevratné. Než jsem to udělal, rekurzivně jsem změnil oprávnění ke složce uploads_jpeg.webpmini spuštěním „chown -R nikdo: nikdo / uploads_jpeg.webpmini“. Dalším příkazem byl „/ bin / cp -Rpf uploads_jpeg.webpmini / * uploads /“, který přepsal existující obrazové soubory s jejich optimalizovanými verzemi JPEG.webpmini.
Pojďme se podívat na před a po. Předtím, než jsem zkopíroval veškerý obsah, vypadaly moje složky takto:
du --max-depth = 1 | třídit -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 Celková velikost: 20 945 855
Zhruba 21 gigabajtů obrázků. Nyní se podívejme na to, jak složka vypadala po optimalizaci všech obrázků pomocí JPEG.webpmini:
du --max-depth = 1 | třídit -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 Celková velikost: 14 375 944
Whoa, to je nyní jen 14,4 gigabajtů! Jen v prostoru na pevném disku jsem dokázal získat více než 6,5 koncertů prostoru, což znamená zhruba 31% úsporu místa. To je v podstatě jedna třetina mého účtu za CDN, což je velké číslo. A mějte na paměti, že poslední dva a více let nezískaly takovou úsporu místa jako dříve, protože jsem již před nahráním začal optimalizovat své obrázky na ploše pomocí JPEG.webpmini Pro, takže čísla, která vidíte, se nahrávají jinými členy týmu, kteří nepoužívají JPEG.webpmini.
Zde je ukázka souhrnné zprávy od JPEG.webpmini za červen 2012:
----------------------------------
INFO: Souhrnná zpráva pro složku photographylife.com/wp-content/uploads/2012/06 (včetně podsložek):
INFO: Celkový počet souborů: 372
INFO: Celková velikost vstupních souborů: 42900 KB
INFO: Celková velikost výstupních souborů: 28480 kB
INFO: Rekompresní poměr: 1,51X (úspora 34%)
INFO: ----------------------------------
Různé složky přinesly různá čísla, ale v průměru to bylo mezi 30-35%, což je hodně, vzhledem k tomu, že náš tým má dobré znalosti o tom, jak během exportu udržovat malé velikosti souborů (obvykle nastavujeme nastavení exportu na úrovni 10 ve Photoshopu , což odpovídá 77-84% „kvalitě“ Lightroomu na naše úrovně komprese JPEG.webp v článku Photoshop a Lightroom).
5) Nastavení kvality a metadat serveru JPEG.webpmini
Pro weby, které se nutně nestarají o zachování vysoce kvalitních obrázků JPEG.webp s jejich metadaty, může JPEG.webpmini skutečně optimalizovat obrázky mnohem agresivněji. Nechtěl jsem, aby obrázky JPEG.webp vypadaly horší, než byly původně nahrány, proto jsem ponechal výchozí nastavení „qual = 0“, které zachovává nejlepší kvalitu. Jiné weby se mohou rozhodnout provozovat ve vysoké nebo střední kvalitě, což výrazněji sníží stopu souborů JPEG.webp. Pomocí příkazu „rmt = 1“ lze také úplně odstranit všechna metadata, a pokud to nestačí, existuje dokonce možnost vynutit progresivní výstup JPEG.webp na každý obrázek. Jsem si jist, že weby sociálních médií, jako je Facebook, tyto nástroje ve velké míře využívají, protože obrázky a videa tvoří velkou část jejich účtů za hostování. Seznam příkazů dostupných na serveru JPEG.webpmini naleznete na této stránce.
6) Závěr
Zatímco produkt JPEG.webpmini Server rozhodně není zaměřen na fotografy, software je velmi univerzálním nástrojem pro ty, kteří vlastní velké webové stránky se spoustou obrázků a provozu. Jak je patrné z mého implementačního projektu, server JPEG.webpmini dokázal ušetřit více než 6,5 gigabajtů prostoru, což znamená zhruba 31% prostoru a úsporu nákladů CDN, což je pro firmy jakékoli velikosti hodně. Za počáteční cenu 199 USD za měsíc není server JPEG.webpmini levný pro malé firmy, ale pro rostoucí společnost s velkou stopou hostování, kde by jedna instance serveru mohla každý měsíc stát víc než to, by produkt mohl stát za seriózní pohled . Pokud jste součástí hostitelské společnosti, pokud vlastníte web s mnoha obrázky, jako je PL, nebo se vaše náklady na CDN stávají nehoráznými, možná budete chtít oslovit lidi v JPEG.webpmini a promluvit si s nimi o tom, jak mohou pomoct ti. Pro začátek můžete vyzkoušet tuto stránku, kde můžete zadat svůj web a zjistit, kolik můžete očekávat, že ušetříte na nákladech CDN.
Máte-li jakékoli dotazy týkající se některého z výše uvedených, neváhejte mi napsat komentář níže.
Server JPEG.webpmini
- Funkce- 100% / 100
- Hodnota- 100% / 100
- Snadnost použití- 80% / 100
- Rychlost a výkon- 100% / 100
- Stabilita- 100% / 100
- Podpěra, podpora- 100% / 100
Photography-Secret.com Celkové hodnocení
4.8- 96% / 100