O Thumbor pode ser usado sem custo financeiro para redimensionar, compactar e transformar imagens sob demanda.
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.