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

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

Este guia explica como instalar o Thumbor em seu próprio servidor. Uma vez instalado, você poderá usar o Thumbor como uma API para transformar suas imagens.

Introdução

Você vai instalar o Thumbor em uma VM com o Ubuntu 16.04. O Ubuntu 16.04 é uma imagem muito comum e essas instruções servem para 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 pouparão horas ou dias de frustração ao tentar instalar o Thumbor corretamente na máquina local. Embora seja fácil de usar, o Thumbor é notoriamente difícil de instalar, mas estas instruções simplificam o processo. Se as dependências forem baixadas rapidamente, a instalação poderá ser concluída em 5 a 10 minutos.

Pré-requisitos

Nesta postagem, consideramos que você sabe como criar uma VM do 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 as 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 com êxito 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, isso deve funcionar:

thumbor --help

Executar o Thumbor

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.

Porta do firewall aberta

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

No entanto, isso provavelmente não vai 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.

Atualizar o firewall para expor a porta 8888. Confira mais informações sobre como fazer isso no Google Cloud, AWS e Azure. No Google Cloud, é preciso primeiro atribuir um endereço IP estático à 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.

Você verá 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 de URL e veiculou o resultado. Você pode substituir a imagem na string de URL (por exemplo, https://web.dev/install-thumbor/hero.jpg) por qualquer outra imagem (por exemplo, https://your-site.com/cat.jpg) e o Thumbor redimensionará essa imagem também.

O artigo Otimizar imagens com o Thumbor tem mais informações sobre o uso da API Thumbor. Especificamente, talvez você esteja interessado em configurar um arquivo de configuração 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 sistema e serviço". para sistemas operacionais Linux. O systemd facilita a configuração quando os serviços (processos) são executados.

Você configurará o systemd para iniciar o Thumbor automaticamente na inicialização da VM. Se a VM for reiniciada, o processo do Thumbor também será reiniciado automaticamente. Isso é muito mais confiável do que contar com a 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 (vim e nano vêm pré-instalados no Ubuntu, ou você pode instalar outro editor), adicione a seguinte configuração ao thumbor.service. Essa configuração executará /usr/local/bin/thumbor (ou seja, o binário Thumbor) quando a rede estiver disponível e reiniciará o Thumbor em caso de 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

Depois, "ativar" Polegar. 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.

systemctl status thumbor.service

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

Systemctl mostrando o status do Thumbor