Küçük resim, resimleri isteğe bağlı olarak yeniden boyutlandırmak, sıkıştırmak ve dönüştürmek için ücretsiz olarak kullanılabilir.
Resim CDN'leri, resimlerinizin estetiğini ve performansını dinamik olarak optimize etmeyi kolaylaştırır. Thumbor, çoğu resim CDN'sinin aksine açık kaynaktır ve resimleri yeniden boyutlandırmak, sıkıştırmak ve dönüştürmek için ücretsiz olarak kullanılabilir. Üretimde kullanıma uygun olması; Hem Wikipedia hem de Square Thumbor'u kullanır.
Bu kılavuzda, Thumbor'ı kendi sunucunuza nasıl yükleyeceğiniz açıklanmaktadır. Yüklendikten sonra, resimlerinizi dönüştürmek için Thumbor'ı API olarak kullanabilirsiniz.
Giriş
Thumbor'u Ubuntu 16.04 çalıştıran bir sanal makineye yükleyeceksiniz. Ubuntu 16.04 çok yaygın bir görüntüdür ve bu talimatlar tüm bulut sağlayıcılarda çalışmak üzere tasarlanmıştır. Sanal makine oluşturmak, yerel makinenize Thumbor'u yüklemekten daha fazla iş gibi görünebilir, ancak sanal makine oluşturmak için harcamanız gereken dakikalar, Thumbor'ı yerel makinenize doğru şekilde yükleme konusunda saatlerce veya günlerce uğraşmak zorunda kalmamanızı sağlayabilir. Thumbor'un kullanımı kolay olsa da kurulumu biraz zor olsa da bu talimatlar süreci basitleştirir. Bağımlılıklar hızlı bir şekilde indirilirse kurulum 5-10 dakika içinde tamamlanabilir.
Ön koşullar
Bu gönderide Google Cloud, AWS veya Azure gibi bir bulut platformunda Ubuntu 16.04 LTS sanal makinesi oluşturmayı ve sanal makineyi kurmak için komut satırı araçlarını kullanmayı bildiğiniz varsayılmaktadır.
Başparmak Bağımlılıklarını Yükleme
Ubuntu'nun önceden yüklenmiş paketleri güncelleyin ve yükseltin:
sudo apt-get update -y && sudo apt-get upgrade -y
Python'un paket yöneticisi olan pip
uygulamasını yükleyin. Daha sonra Thumbor'ı pip
ile yükleyeceksiniz.
sudo apt-get install -y python-pip
Thumbor'un bağımlılıklarını yükleyin. Thumbor'un dokümanlarında bu bağımlılıklar açıkça belirtilmiyor, ancak Thumbor bunlar olmadan başarılı bir şekilde yüklenmez.
# 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'ı yükle
Pip kullanarak Thumbor'u yükleyin.
sudo pip install thumbor
Thumbor'u başarıyla yüklediyseniz, aşağıdaki komut çalışacaktır:
thumbor --help
Çalıştırma Beğenisi
Thumbor'ı çalıştırın. Hata ayıklama günlük kaydı isteğe bağlıdır ancak başlarken size yardımcı olabilir.
thumbor --log-level debug
Thumbor şu anda çalışıyor.
Güvenlik Duvarı Bağlantı Noktasını Aç
Thumbor varsayılan olarak 8888 numaralı bağlantı noktasında çalışır. Sanal makinenizin IP adresi 12.123.12.122
ise Thumbor'a http://12.123.12.123:8888/.../$IMAGE
adresindeki web tarayıcısından erişebilirsiniz.
Ancak bulut sağlayıcılar gelen trafiği kabul etmeden önce genellikle güvenlik duvarı bağlantı noktalarını açıkça açmanızı gerektirdiğinden bu seçenek büyük olasılıkla sizin için uygun olmayacaktır.
Bağlantı noktasını 8888'i gösterecek şekilde güvenlik duvarını güncelleyin. Bunu Google Cloud, AWS ve Azure için nasıl yapacağınızla ilgili daha fazla bilgiyi burada bulabilirsiniz. Google Cloud için önce sanal makinenize statik bir IP adresi atamanız ve ardından harici bir HTTP bağlantısına izin vermeniz gerektiğini unutmayın.
Deneyin
Thumbor artık erişilebilir ve kullanıma hazırdır. Aşağıdaki URL'yi ziyaret ederek deneyin:
http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg
Bu URL'nin HTTP kullandığını unutmayın. Thumbor varsayılan olarak HTTP kullanır, ancak HTTPS kullanacak şekilde yapılandırılabilir.
100 piksel genişliğinde ve 100 piksel yüksekliğinde bir resim göreceksiniz. Thumbor, hero.jpg
resmini ve URL dizesinde belirtilen boyutu alıp sonucu sundu. URL dizesindeki (ör. https://web.dev/install-thumbor/hero.jpg
) ile birlikte başka bir resimle (ör. https://your-site.com/cat.jpg
) tıkladığınızda Başparmak bu resmi de yeniden boyutlandırır.
Thumbor ile resimleri optimize etme makalesinde Thumbor API'yi kullanma hakkında daha fazla bilgi bulabilirsiniz. Özellikle, bir Thumbor yapılandırma dosyası oluşturmak ilginizi çekebilir.
Ek: Systemd'ı Yapılandırma
Bu adımda, Thumbor işleminin sanal makine yeniden başlatıldıktan sonra bile çalışmaya devam etmesinin nasıl sağlanacağı açıklanmaktadır. Bu adım, üretim siteleri için önemlidir, ancak yalnızca Thumbor ile oynaıyorsanız isteğe bağlıdır.
Systemd, "sistem ve hizmet yöneticisi"dir birlikte çalışır. systemd
, hizmetler (işlemler) çalışırken yapılandırmayı kolaylaştırır.
systemd
uygulamasını, sanal makine başlatılırken Thumbor'u otomatik olarak başlatacak şekilde yapılandıracaksınız. Sanal makine yeniden başlatılırsa Thumbor işlemi de otomatik olarak yeniden başlatılır. Bu yöntem, Thumbor'ı başlatmak için kullanıcı müdahalesine güvenmekten çok daha güvenilirdir.
/lib/systemd/system
dizinine gidin. Bu dizin, systemd
için hizmet dosyalarını içerir.
cd /lib/systemd/system
Süper kullanıcı olarak bir thumbor.service
dosyası oluşturun.
sudo touch thumbor.service
En sevdiğiniz metin düzenleyiciyi kullanarak (vim ve nano, Ubuntu'da önceden yüklü olarak gelir veya başka bir düzenleyici yükleyebilirsiniz) thumbor.service
uygulamasına aşağıdaki yapılandırmayı ekleyin. Bu yapılandırma, ağ iletişimi kullanılabilir olduğunda /usr/local/bin/thumbor
öğesini (Thumbor ikili programı) çalıştırır ve hata olduğunda Thumbor'u yeniden başlatır.
[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
ayarlarını yönetmek için kullanılan yardımcı programdır. Thumbor'ı başlatmak için start
komutunu kullanın.
sudo systemctl start thumbor.service
Ardından, "etkinleştir" Başparmak. Bu, Thumbor'un başlatma sırasında otomatik olarak başlayacağı anlamına gelir.
sudo systemctl enable thumbor.service
status
komutunu çalıştırarak systemd
uygulamasını başarıyla yapılandırdığınızı doğrulayın.
systemctl status thumbor.service
thumbor.service'i systemd
hizmetini kullanacak şekilde başarıyla ayarladıysanız durum, hizmetin etkin ve etkin olduğunu gösterir.