Después de que tuve la oportunidad de probar y revisar el software JPEG.webpmini Pro, me di cuenta de lo poderoso que es este software no solo para exportar imágenes y ser parte de un flujo de trabajo de Lightroom, sino también para muchos otros usos, incluida la optimización de imágenes que ya están en nuestro grandes dispositivos de almacenamiento. Otro uso en el que pensé inmediatamente fue el servidor web desde donde se origina el tráfico de Photography-Secret.com. Dado el tráfico que Photography-Secret.com ofrece en todo el mundo a diario y el hecho de que las imágenes por sí solas representan aproximadamente 5 Terabytes de tráfico por mes, la idea de poder comprimir imágenes JPEG.webp utilizando el motor JPEG.webpmini era algo que realmente quería implementar más temprano que tarde. Así que me embarqué en un nuevo proyecto: ahorrar tráfico y dinero a largo plazo para PL, utilizando el servidor JPEG.webpmini.
Fotógrafos, cuidado: esta es una revisión muy técnica de software que no está relacionada con la fotografía. Decidí publicar la reseña en PL, ya que creo que otros sitios web con mucha fotografía podrían beneficiarse enormemente de la implementación del servidor JPEG.webpmini.
1) Descripción general del entorno del servidor
Antes de pasar a la revisión, me gustaría señalar algunos bits de información potencialmente importantes sobre la configuración de mi servidor web. En primer lugar, ejecuto CentOS Linux en todos los servidores (y hay algunos). Los dos servidores web back-end que manejan las llamadas PHP desde el balanceador de carga es donde instalé el servidor JPEG.webpmini, aunque solo el primero realmente importa, ya que es el que maneja todas las cargas al sitio (WordPress no puede manejar esto directamente, así que solo es posible observar las llamadas de wp-admin y dirigirlas al servidor apropiado a través de nginx / apache). Desafortunadamente, no hay una manera fácil de ejecutar más de un servidor WordPress sin problemas de carga de archivos, ya que no está diseñado para usarse en un entorno de clúster (mover todo a AWS con instancias de servidor en ejecución EC2, RDS ejecutando la base de datos y S3 manejando files sería una buena solución, pero después de que lo probé, no era una solución barata de ninguna manera, especialmente una vez que comienza a generar algunos servidores EC2 que manejarían la carga de back-end). Por lo tanto, he estado sincronizando todas las cargas a través de rsync. No es una solución elegante, pero funciona bastante bien. Tengo rsync monitoreando la carpeta "wp-content", por lo que todos los cambios se replican de una manera (básicamente, una vez que las imágenes se cargan en server01, el server02 las recoge automáticamente). Se tarda uno o dos segundos en sincronizarse, pero una vez que sucede, las imágenes se sirven fácilmente para las solicitudes del equilibrador de carga.
Todas las llamadas al servidor web son manejadas por un equilibrador de carga, que solo sirve tráfico web https. Todas las imágenes son manejadas por un CDN externo. La razón principal para implementar JPEG.webpmini fue reducir los costos de CDN, que solo aumentan cada mes a medida que continuamos publicando más contenido.
Tenga en cuenta que su servidor web debe ejecutar una versión de Linux: el servidor JPEG.webpmini no se ejecuta en servidores Windows. Aquí está la lista de plataformas de servidor compatibles.
2) Instalación del servidor JPEG.webpmini
La instalación del servidor JPEG.webpmini es muy fácil, especialmente si ejecuta RHEL, CentOS y otras distribuciones populares de Linux. Para mi servidor CentOS, JPEG.webpmini proporcionó un archivo RPM, por lo que fue una instalación fácil con un solo comando. Una vez que se instaló el archivo binario (/ usr / bin / jpeg.webpmini por defecto), el siguiente paso fue copiar el archivo de licencia .jpeg.webpmini.cfg en el directorio de inicio del usuario. A partir de ahí, la ejecución de "jpeg.webpmini" debería generar algo como lo siguiente:
===============================
Inicie jpeg.webpmini 3.14.2.84235
===============================
-f se requiere la opción: -f =
Utilice -help para obtener ayuda
===============================
Finalizar jpeg.webpmini 3.14.2.84235
===============================
Mi prueba inicial comenzó con la versión 3.13 del servidor JPEG.webpmini, pero después de algunos cambios solicitados en el ejecutable, JPEG.webpmini proporcionó un archivo 3.14 RPM actualizado. La principal adición a la versión 3.14 es la capacidad de omitir archivos ya optimizados, lo cual fue un gran problema para mí, ya que utilizo la versión de escritorio del software y no quería que el servidor JPEG.webpmini volviera a optimizar las imágenes JPEG.webp cargadas.
3) Manejo de archivos de imagen de WordPress
Cuando se carga una imagen en WordPress, los scripts de administración usarán GD o ImageMagick para procesar esas imágenes. De forma predeterminada, WordPress crea imágenes de tres tamaños, además de la imagen cargada (miniatura, tamaño mediano y tamaño grande), pero dependiendo de cuántas llamadas add_image_size se puedan agregar por el tema y los complementos, ¡puede haber muchas más! Debido a esto, una sola carga de imagen podría generar un montón de archivos en el servidor, permitiendo que la carpeta Cargas crezca muy rápidamente. Y esas imágenes más pequeñas son creadas por GD o ImageMagick, por lo que los archivos de forma predeterminada serán despojados de los perfiles de color ICC y los datos EXIF, lo que no es deseable en un sitio web de fotografía. Tampoco se optimizarán adecuadamente para el tamaño, ya que ni GD ni ImageMagick tienen un algoritmo inteligente como JPEG.webpmini para poder comprimir correctamente las imágenes JPEG.webp. De hecho, WordPress hace un trabajo bastante horrible al cambiar el tamaño de las imágenes, lo que a menudo da como resultado imágenes con colores deficientes (debido a la eliminación de perfiles ICC), imágenes suaves y turbias (debido a una gran compresión). Para evitar este problema en PL, solo he estado usando ImageMagick para optimizar imágenes, con opciones especiales. Solo eliminamos los datos EXIF de las miniaturas y los comprimimos de manera un poco más agresiva para una experiencia de navegación rápida. Una vez en una publicación, ni los perfiles ICC ni los datos EXIF se eliminan de las imágenes más grandes para que se vean lo mejor posible. De esta manera, no obligamos a nuestros lectores a hacer clic en una imagen para ver la "versión correcta": las imágenes se ven consistentes desde las vistas previas hasta los tamaños nativos cargados.
Por lo tanto, para aprovechar al máximo el servidor JPEG.webpmini, es mejor ejecutar el ejecutable para cada proceso de cambio de tamaño, no solo para la versión única cargada, ya que desea que el motor optimice cada archivo, ya sea un miniatura, una versión mediana o grande del original. Básicamente, esto significa que JPEG.webpmini debería interceptar todas las llamadas a image_resize.
4) Integración de JPEG.webpmini Server y WordPress
Desafortunadamente, JPEG.webpmini no proporciona un complemento que se integre automáticamente en WordPress para hacer eso, así que tuve que encontrar una solución por mi cuenta. Comencé con el código base del complemento ImageMagick Engine (un complemento bastante desactualizado, pero aún funciona), luego agregué llamadas al ejecutable JPEG.webpmini en la función ime_im_cli_resize (ejecuto una versión de línea de comando de ImageMagick en lugar de un módulo PHP). Si esta versión modificada del complemento es algo que le interesa, avíseme en la sección de comentarios a continuación y le enviaré el archivo del complemento. No estoy seguro de si la gente de JPEG.webpmini está planeando lanzar un complemento de WordPress, pero me complacería contribuir con algún código por una buena causa.
El código funciona y ha sido probado con JPEG.webpmini 3.14. Tan pronto como se crea cada versión redimensionada, el código primero optimiza esas imágenes, luego optimiza y sobrescribe la imagen JPEG.webp original.
5) Resultados de la prueba del servidor JPEG.webpmini
Hasta ahora ha habido un montón de palabrería técnica, así que vayamos al grano. ¿Cuánto espacio en disco pude recuperar y cuánto ahorré en costos de CDN? Para ejecutar el ejecutable JPEG.webpmini de forma recursiva en cada carpeta, tuve que solicitar un script a los ingenieros de JPEG.webpmini, que proporcionaron muy rápidamente. El archivo proporcionado era un script de Python llamado "jpeg.webpmini_recursive.py", que solo necesitaba dos comandos: uno para ingresar la carpeta de origen y otro para ingresar la carpeta de destino (modifiqué el script un poco después de obtener la nueva versión de RPM que puede omitir automáticamente imágenes JPEG.webp ya optimizadas). Después de hacer una copia de seguridad de todo, creé una carpeta llamada "uploads_jpeg.webpmini" y eso es lo que usé como carpeta de destino. Ejecuté el script y me tomó un tiempo revisar todos y cada uno de los archivos. Regresé después de unas horas y el guión terminó de ejecutarse.
Dado que JPEG.webpmini solo optimiza imágenes JPEG.webp y no toca PNG, GIF u otras cargas de archivos como videos, tuve que asegurarme de copiar la carpeta resultante nuevamente en mi carpeta de cargas. Nuevamente, asegúrese de hacer una copia de seguridad completa de todo antes de dar este paso, ya que es irreversible. Antes de hacer eso, cambié los permisos de forma recursiva en la carpeta uploads_jpeg.webpmini ejecutando “chown -R nadie: nadie / uploads_jpeg.webpmini”. Luego, el siguiente comando fue "/ bin / cp -Rpf uploads_jpeg.webpmini / * uploads /", que sobrescribió los archivos de imagen existentes con sus versiones optimizadas de JPEG.webpmini.
Echemos un vistazo al antes y al después. Así es como se veían mis carpetas antes de copiar todo el contenido:
du --max-depth = 1 | clasificación -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 Tamaño total: 20,945,855
Aproximadamente 21 gigabytes de imágenes. Ahora echemos un vistazo a cómo se veía la carpeta después de que JPEG.webpmini optimizara todas las imágenes:
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 Tamaño total: 14.375.944
¡Vaya, ahora son solo 14,4 gigabytes! Solo en el espacio del disco duro pude recuperar más de 6,5 gigas de espacio, lo que se traduce en aproximadamente un 31% de ahorro de espacio. Eso es básicamente un tercio de mi factura de CDN, que es un gran número. Y tenga en cuenta que los últimos dos años o más no obtuve tanto ahorro de espacio como antes, ya que ya comencé a optimizar mis imágenes en mi escritorio con JPEG.webpmini Pro antes de cargarlas, por lo que los números que ve son cargas de otros miembros del equipo que no están usando JPEG.webpmini.
Aquí hay un ejemplo de informe resumido de JPEG.webpmini para junio de 2012:
----------------------------------
INFORMACIÓN: Informe resumido de la carpeta photographylife.com/wp-content/uploads/2012/06 (incluidas las subcarpetas):
INFO: Número total de archivos: 372
INFO: Tamaño total de los archivos de entrada: 42900 KB
INFORMACIÓN: Tamaño total de los archivos de salida: 28480 KB
INFORMACIÓN: Relación de recompresión: 1.51X (34% de ahorro)
INFORMACIÓN: ----------------------------------
Diferentes carpetas arrojaron números diferentes, pero en promedio estuvo entre 30-35%, que es mucho, considerando que nuestro equipo está bastante bien informado sobre cómo mantener pequeños los tamaños de archivo durante el proceso de exportación (generalmente mantenemos nuestra configuración de exportación en el Nivel 10 en Photoshop , que es equivalente al 77-84% de “Calidad” de Lightroom, según nuestro artículo Niveles de compresión JPEG.webp en Photoshop y Lightroom).
5) Configuración de metadatos y calidad del servidor JPEG.webpmini
Para los sitios que no se preocupan necesariamente por conservar imágenes JPEG.webp de alta calidad con sus metadatos, JPEG.webpmini puede optimizar las imágenes de manera mucho más agresiva. No quería que las imágenes JPEG.webp se vieran peor que las que se cargaron originalmente, así que mantuve la configuración predeterminada de "qual = 0", que conserva la mejor calidad. Otros sitios pueden optar por ejecutarse con calidad alta o media, lo que reducirá la huella de los archivos JPEG.webp de manera mucho más agresiva. Además, también se pueden eliminar por completo todos los metadatos con el comando "rmt = 1" y, si eso no es suficiente, incluso hay una opción para forzar la salida JPEG.webp progresiva en cada imagen. Estoy seguro de que los sitios de redes sociales como Facebook utilizan mucho este tipo de herramientas, ya que las imágenes y los videos son una gran parte de sus facturas de alojamiento. Para obtener una lista de los comandos disponibles con el servidor JPEG.webpmini, visite esta página.
6. Conclusión
Si bien el producto JPEG.webpmini Server definitivamente no está dirigido a fotógrafos, el software es una herramienta muy versátil para aquellos que poseen sitios web grandes con muchas imágenes y tráfico. Como se puede ver en mi proyecto de implementación, JPEG.webpmini Server pudo ahorrar más de 6.5 gigabytes de espacio, lo que se traduce en aproximadamente un 31% en ahorro de espacio y costos de CDN, lo cual es mucho para una empresa de cualquier tamaño. Con un precio inicial de $ 199 por mes, JPEG.webpmini Server no es barato para una pequeña empresa, pero para una empresa en crecimiento con una gran huella de alojamiento donde una sola instancia de servidor puede costar más que eso cada mes, el producto podría valer una mirada seria. . Si es parte de una empresa de alojamiento, si posee un sitio web cargado con muchas imágenes como PL, o si sus costos de CDN se están volviendo escandalosos, es posible que desee comunicarse con la gente de JPEG.webpmini y hablar con ellos sobre cómo pueden hacerlo. ayudarte. Para empezar, puede probar esta página, donde puede ingresar su sitio web y ver cuánto puede esperar ahorrar en costos de CDN.
Si tiene alguna pregunta sobre cualquiera de los anteriores, no dude en enviarme un comentario a continuación.
Servidor JPEG.webpmini
- Características- 100% / 100
- Valor- 100% / 100
- Facilidad de uso- 80% / 100
- Velocidad y rendimiento- 100% / 100
- Estabilidad- 100% / 100
- Apoyo- 100% / 100
Photography-Secret.com Calificación general
4.8- 96% / 100