Küçük resim CDN'sini yükleme

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.

Katie Hempenius
Katie Hempenius

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.

Thumbor'ın durumunu gösteren Systemctl