Thumbor можно бесплатно использовать для изменения размера, сжатия и преобразования изображений по требованию.
CDN изображений позволяют легко динамически оптимизировать внешний вид и производительность ваших изображений. В отличие от большинства CDN изображений, Thumbor имеет открытый исходный код, и его можно бесплатно использовать для изменения размера, сжатия и преобразования изображений. Подходит для производственного использования; Wikipedia и Square используют Thumbor.
В этом руководстве объясняется, как установить Thumbor на свой сервер. После установки вы сможете использовать Thumbor в качестве API для преобразования ваших изображений.
вступление
Вы будете устанавливать Thumbor на виртуальную машину под управлением Ubuntu 16.04. Ubuntu 16.04 — очень распространенный образ, и эти инструкции предназначены для работы с любым поставщиком облачных услуг. Создание виртуальной машины может показаться более трудоемким, чем установка Thumbor на ваш локальный компьютер, но минуты, которые вы потратите на создание виртуальной машины, вероятно, сэкономят вам часы или дни разочарований, пытаясь правильно установить Thumbor на ваш локальный компьютер. Хотя Thumbor прост в использовании, он, как известно, сложен в установке, но эти инструкции упрощают процесс. Если зависимости загружаются быстро, установку можно завершить за 5–10 минут.
Предварительные условия
В этом посте предполагается, что вы знаете, как создать виртуальную машину Ubuntu 16.04 LTS на облачной платформе, такой как Google Cloud , AWS или Azure , и как использовать инструменты командной строки для настройки виртуальной машины.
Установите зависимости Thumbor
Обновите и обновите уже установленные пакеты Ubuntu:
sudo apt-get update -y && sudo apt-get upgrade -y
Установите pip
, менеджер пакетов для Python. Позже вы установите Thumbor с помощью pip
.
sudo apt-get install -y python-pip
Установите зависимости Thumbor. В документации Thumbor эти зависимости явно не упоминаются, но без них Thumbor не будет успешно установлен.
# ssl packages
sudo apt-get install -y libcurl4-openssl-dev libssl-dev
# computer vision packages
sudo apt-get install -y python-opencv libopencv-dev
# image format packages
sudo apt-get install -y libjpeg-dev libpng-dev libwebp-dev webp
Установить Thumbor
Установите Thumbor с помощью pip.
sudo pip install thumbor
Если вы успешно установили Thumbor, это должно работать:
thumbor --help
Запустить палец
Запустите Thumbor. Ведение журнала отладки не является обязательным, но может оказаться полезным в начале работы.
thumbor --log-level debug
Thumbor теперь работает.
Открыть порт брандмауэра
По умолчанию Thumbor работает через порт 8888. Если IP-адрес вашей виртуальной машины — 12.123.12.122
, вы можете получить доступ к Thumbor из веб-браузера по адресу http://12.123.12.123:8888/.../$IMAGE
.
Однако это, вероятно, не подойдет вам (пока), поскольку облачные провайдеры обычно требуют, чтобы вы явно открыли порты брандмауэра, прежде чем они будут принимать входящий трафик.
Обновите брандмауэр, чтобы открыть порт 8888. Вот дополнительная информация о том, как это сделать для: Google Cloud , AWS и Azure . Обратите внимание, что для Google Cloud вам необходимо сначала назначить статический IP-адрес вашей виртуальной машине , а затем разрешить внешнее HTTP-соединение .
Попробуйте это
Теперь Thumbor доступен и готов к использованию. Попробуйте это, посетив следующий URL-адрес:
http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg
Обратите внимание, что этот URL-адрес использует HTTP. По умолчанию Thumbor использует HTTP, но его можно настроить на использование HTTPS.
Вы должны увидеть изображение шириной 100 пикселей и высотой 100 пикселей. Thumbor взял изображение hero.jpg
и размер, указанный в строке URL, и предоставил результат. Вы можете заменить изображение в строке URL-адреса (например, https://web.dev/install-thumbor/hero.jpg
) на любое другое изображение (например, https://your-site.com/cat.jpg
) и Thumbor также изменит размер этого изображения.
В статье «Оптимизация изображений с помощью Thumbor» содержится дополнительная информация об использовании Thumbor API. В частности, вас может заинтересовать настройка файла конфигурации Thumbor .
Приложение: Настройка Systemd
На этом шаге объясняется, как обеспечить продолжение работы процесса Thumbor даже после перезапуска виртуальной машины. Этот шаг важен для производственных сайтов, но необязателен, если вы просто экспериментируете с Thumbor.
Systemd — это «менеджер системы и служб» для операционных систем Linux. systemd
упрощает настройку запуска служб (процессов).
Вы настроите systemd
для автоматического запуска Thumbor при загрузке виртуальной машины. Если виртуальная машина перезапускается, процесс Thumbor также автоматически перезапустится. Это гораздо надежнее, чем полагаться на вмешательство пользователя при запуске Thumbor.
Перейдите в каталог /lib/systemd/system
. Этот каталог содержит служебные файлы для systemd
.
cd /lib/systemd/system
В качестве суперпользователя создайте файл thumbor.service
.
sudo touch thumbor.service
Используя ваш любимый текстовый редактор (vim и nano предварительно установлены в Ubuntu, или вы можете установить другой редактор), добавьте следующую конфигурацию в thumbor.service
. Эта конфигурация запустит /usr/local/bin/thumbor
(т. е. двоичный файл Thumbor), как только сеть станет доступной, и перезапустит Thumbor в случае сбоя .
[Unit]
Description=Service for Thumbor image CDN
Documentation=https://thumbor.readthedocs.io/en/latest/
After=network.target
[Service]
ExecStart=/usr/local/bin/thumbor
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl
— это утилита, используемая для управления systemd
. Используйте команду start
, чтобы запустить Thumbor.
sudo systemctl start thumbor.service
Далее «включите» Thumbor. Это означает, что Thumbor автоматически запустится при загрузке.
sudo systemctl enable thumbor.service
Убедитесь, что вы успешно настроили systemd
, выполнив команду status
.
systemctl status thumbor.service
Если вы успешно настроили Thumbor.service для использования systemd
, статус должен показывать, что он включен и активен.
![Systemctl, отображающий статус Thumbor](https://web.dev/static/articles/install-thumbor/image/systemctl-displaying-sta-7d4324ce6097b.jpg?authuser=5&hl=ru)