Оптимизация изображений на веб сервере
Если вы или ваши пользователи загружают изображения на ваш сайт, то рано или поздно они начнут занимать неприлично много места.
В данной статье я расскажу как оптимизировать все jpg и png изображения на вашем веб сервере.
В оптимизации изображений нам помогут следующие утилиты — jpegoptim и optipng.
Установим их, в качестве примера я буду использовать Ubuntu server
apt-get update
apt-get install jpegoptim optipng
Рассмотрим как можно использовать данные утилиты.
Для оптимизации JPG достаточно выполнить команду:
jpegoptim --size=100k YourPIC.jpeg --overwrite
На мой взгляд наиболее оптимально использовать параметр size=250k , тогда команда будет выглядеть так:
jpegoptim --size=250k YourPIC.jpeg --overwrite
Теперь рассмотрим оптимизацию PNG.
Выполним команду:
optipng -o5 YourPIC.png
Если вы хотите сжать изображение еще сильнее, то используйте параметр -o7 , команда будет выглядеть так:
optipng -o7 YourPIC.png
Обратите внимание , что при использовании параметра -o7 у вас увеличится утилизация CPU на сервере.
Теперь для автоматизации всего этого добра создадим такой скрипт:
#!/bin/bash picdir='/hosting/website/upload/images' # Optimize JPG jpgs=$(find $picdir -iname *.jpg ) for jpg in $jpgs do echo $jpg jpegoptim --size=250k $jpg chown www-data $jpg done # Optimize JPEG jpegs=$(find $picdir -iname *.jpeg ) for jpeg in $jpegs do echo $jpeg jpegoptim --size=250k $jpeg chown www-data $jpeg done # Optimize PNG pngs=$(find $picdir -iname *.png ) for png in $pngs do echo $png optipng -o7 $png chown www-data $png done
Сохраните себе этот скрипт , в переменной picdir вместо /hosting/website/upload/images укажите путь к каталогу с изображениями на вашем сайте.
Не забудьте сделать скрипт исполняемым , командой chmod +x ./your_script.sh
Теперь можно добавить его в крон
crontab -e
0 1 * * * /path_to_script/your_script.sh
Обратите внимание что при запуске этого скрипта у вас увеличится утилизация CPU , запускайте скрипт в то время, когда у вас мало посетителей на сайте, перед запуском обязательно протестируйте оптимизацию изображений на тестовом стенде, возможно для вас параметры -o7 и —size=250k не оптимальные.
Добавить комментарий