Como instalar a CDN de imagens Thumbor

O Thumbor pode ser usado sem custo financeiro para redimensionar, compactar e transformar imagens sob demanda.

Katie Hempenius
Katie Hempenius

Os CDNs de imagens facilitam a otimização dinâmica da estética e do desempenho das suas imagens. Ao contrário da maioria das CDNs de imagens, o Thumbor tem código aberto e pode ser usado sem custo financeiro para redimensionar, compactar e transformar imagens. Ele é adequado para uso em produção. A Wikipédia e o Square usam o Thumbor.

Neste guia, explicamos como instalar o Thumbor no seu próprio servidor. Depois de instalado, você poderá usar o Thumbor como uma API para transformar suas imagens.

introdução

Você instalará o Thumbor em uma VM com o Ubuntu 16.04. O Ubuntu 16.04 é uma imagem muito comum, e essas instruções são destinadas a funcionar em qualquer provedor de nuvem. Criar uma VM pode parecer mais trabalhoso do que instalar o Thumbor na máquina local, mas os minutos necessários para criar uma VM provavelmente vão poupar horas ou dias de frustração tentando fazer com que o Thumbor seja instalado corretamente na máquina local. Embora seja fácil de usar, o Thumbor é notoriamente difícil de instalar, mas essas instruções simplificam o processo. Se o download das dependências for rápido, a instalação poderá ser concluída em 5 a 10 minutos.

Pré-requisitos

Esta postagem pressupõe que você sabe como criar uma VM Ubuntu 16.04 LTS em uma plataforma de nuvem como Google Cloud, AWS, ou Azure e como usar ferramentas de linha de comando para configurar a VM.

Instalar dependências do Thumbor

Atualize e faça upgrade dos pacotes já instalados do Ubuntu:

sudo apt-get update -y && sudo apt-get upgrade -y

Instale o pip, o gerenciador de pacotes do Python. Mais tarde, você instalará o Thumbor com pip.

sudo apt-get install -y python-pip

Instale as dependências do Thumbor. A documentação do Thumbor não menciona explicitamente essas dependências, mas o Thumbor não será instalado sem elas.

# 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

Instalar o Thumbor

Instale o Thumbor usando o pip.

sudo pip install thumbor

Se você instalou o Thumbor corretamente, isso vai funcionar:

thumbor --help

Miniatura "Run"

Execute o Thumbor. O registro de depuração é opcional, mas pode ser útil quando você estiver começando.

thumbor --log-level debug

O Thumbor está em execução.

Abrir porta do firewall

Por padrão, o Thumbor é executado na porta 8888. Se o endereço IP da VM fosse 12.123.12.122, você acessaria o Thumbor no navegador da Web em http://12.123.12.123:8888/.../$IMAGE.

No entanto, isso provavelmente não funcionará para você (ainda) porque os provedores de nuvem geralmente exigem que você abra explicitamente as portas de firewall antes de aceitarem o tráfego de entrada.

Atualize o firewall para expor a porta 8888. Veja mais informações sobre como fazer isso para: Google Cloud, AWS e Azure. Para o Google Cloud, primeiro você precisa atribuir um endereço IP estático à sua VM e depois permitir uma conexão HTTP externa.

Faça o teste

O Thumbor já está acessível e pronto para uso. Para testar, acesse o seguinte URL:

http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg

Esse URL usa HTTP. O Thumbor usa HTTP por padrão, mas pode ser configurado para usar HTTPS.

Será exibida uma imagem com 100 pixels de largura por 100 pixels de altura. O Thumbor usou a imagem hero.jpg e o tamanho especificado na string do URL e veiculou o resultado. É possível substituir a imagem na string do URL (por exemplo, https://web.dev/install-thumbor/hero.jpg) por qualquer outra imagem, como https://your-site.com/cat.jpg), e o Thumbor também vai redimensionar essa imagem.

O artigo Otimizar imagens com o Thumbor tem mais informações sobre como usar a API Thumbor. Talvez você esteja interessado em configurar um arquivo de configuração do Thumbor.

Apêndice: como configurar o Systemd

Nesta etapa, explicamos como garantir que o processo do Thumbor continue em execução, mesmo após a reinicialização da VM. Essa etapa é importante para sites de produção, mas é opcional se você estiver apenas testando o Thumbor.

Systemd é o "gerenciador de sistemas e serviços" para sistemas operacionais Linux. O systemd facilita a configuração quando serviços (processos) são executados.

Você vai configurar systemd para iniciar automaticamente o Thumbor na inicialização da VM. Se a VM for reiniciada, o processo Thumbor também será reiniciado automaticamente. Isso é muito mais confiável do que depender da intervenção do usuário para iniciar o Thumbor.

Navegue até o diretório /lib/systemd/system. Esse diretório contém os arquivos de serviço para systemd.

cd /lib/systemd/system

Como superusuário, crie um arquivo thumbor.service.

sudo touch thumbor.service

Usando seu editor de texto favorito (o vim e o nano vêm pré-instalados no Ubuntu ou você pode instalar outro editor), adicione a seguinte configuração ao thumbor.service. Essa configuração vai executar /usr/local/bin/thumbor (ou seja, o binário Thumbor) assim que a rede estiver disponível e reiniciar o Thumbor em falha.

[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

O systemctl é o utilitário usado para gerenciar o systemd. Use o comando start para iniciar o Thumbor.

sudo systemctl start thumbor.service

Em seguida, "ative" o Thumbor. Isso significa que o Thumbor será iniciado automaticamente na inicialização.

sudo systemctl enable thumbor.service

Execute o comando status para verificar se você configurou o systemd corretamente.

systemctl status thumbor.service

Se você tiver configurado o thumbor.service para usar systemd, o status mostrará que ele está ativado e ativo.

Systemctl mostrando o status do Thumbor