Альтернатива сервису Photon от Jetpack/WordPress.com
Опубликовано: 05.09.2018
Сервис Photon в плагине Jetpack позволяет пользователям и разработчикам WordPress снять нагрузку со своего сервера и выдавать изображения с помощью CDN инфраструктуры сети WordPress.com. Кроме этого сервис так же позволяет выполнять разные манипуляции над изображениями, например изменять их размер, использовать разные фильтры и многое другое.
Photon является бесплатным сервисов, но есть одно ограничение — вы должны использовать плагин Jetpack на вашем сайте, и не можете обращаться к Photon API напрямую. Если вы не хотите использовать плагин Jetpack на вашем сайте WordPress, то вам придется искать альтернативу.
Программист из компании Google Уилл Норрис описывает свои отношения с Jetpack как «сложные» и по «философским причинам» отказывается пользоваться популярным плагином, но сервис Photon ему понравился настолько, что он решил написать альтернативу, которую можно запустить на своем собственном сервере.
Imageproxy — это программа написанная на языке Go, которая позволяет запускать прокси-сервис для изображений, с возможностью изменять их размеры и т.д (кроме фильтров, которыми Уилл не пользуется).
Мы попробовали запустить imageproxy на нашем тестовом сервере Debian:
$ cd ~ $ git clone https://github.com/willnorris/imageproxy $ export GOPATH="$HOME/imageproxy" $ cd ~/imageproxy $ go get $ go build $ ./imageproxy --addr proxy.wpmag.ru:8080 imageproxy (version HEAD) listening on proxy.wpmag.ru:8080Это конечно подразумевает что вы справились с установкой языка Go на вашей системе.
Другие параметры к imageproxy можно посмотреть в самом исходном файле imageproxy.go. При работе важно установить список доменных имен, откуда разрешено загружать изображения.
Каким образом Уилл заменяет адреса изображений на своем сайте пока не известно. Он упомянул лишь то, что в Jetpack хорошо реализована эта логика, которую можно использовать и для imageproxy. Наверное в ближайшее время можно ожидать появление плагина для WordPress, который будет работать с imageproxy.
Если вы не готовы компилировать и запускать imageproxy на вашем собственном сервере, а так же по той или иной причине не хотите использовать плагин Jetpack, есть и альтернативные решения. Например сервисы resize.ly , embed.ly или плагин Dynamic Image Resizer .