如何安裝 Thumbor 映像檔 CDN

有了這項工具,就能視需求免費調整圖片大小、壓縮及轉換圖片。

Katie Hempenius
Katie Hempenius

Image CDN 可讓您輕鬆地動態調整圖片外觀和效能。與大多數圖片 CDN 不同,Thumbor 是開放原始碼,可以自由調整圖片大小、壓縮及轉換圖片。適合實際工作環境;維基百科Square 都使用 Thumbor。

本指南說明如何在自有伺服器上安裝 Thumbor。安裝完成後,您就能使用 Thumbor 做為 API 轉換圖片。

簡介

您將在執行 Ubuntu 16.04 的 VM 上安裝 Thumbor。Ubuntu 16.04 是很常見的映像檔,而這些指示適用於任何雲端服務供應商。建立 VM 聽起來可能比安裝本機電腦上的 Thumbor 好,但是如果嘗試讓 Thumbor 正確安裝到本機電腦,建立 VM 所需的幾分鐘或許就能省下數小時的時間。雖然 Thumbor 簡單易用,但安裝起來相當費神,但這些操作說明可以簡化安裝流程。如果快速下載依附元件,安裝作業可在 5 到 10 分鐘內完成。

必要條件

本文假設您知道如何在 Google CloudAWS,Azure 等雲端平台中建立 Ubuntu 16.04 LTS VM,以及如何使用指令列工具設定 VM。

安裝 Thumbor 依附元件

更新並升級 Ubuntu 已安裝的套件:

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

安裝 pip,這是 Python 的套件管理員。稍後您將搭配 pip 安裝 Thumbor。

sudo apt-get install -y python-pip

安裝 Thumbor 的依附元件。Thumbor 的說明文件未明確提及這些依附元件,但如果缺少這些依附元件,Tumbor 就無法成功安裝。

# 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

使用 pip 安裝 Thumbor。

sudo pip install thumbor

如果您已成功安裝 Thumbor,應該就能正常運作:

thumbor --help

執行 Thumbor

執行 Thumbor。雖然偵錯記錄並非必要,但偵錯記錄對於開始使用會很有幫助。

thumbor --log-level debug

計時器現在開始執行。

開放防火牆通訊埠

根據預設,Tumbor 會在通訊埠 8888 上執行。如果 VM 的 IP 位址為 12.123.12.122,您可以透過網路瀏覽器前往 http://12.123.12.123:8888/.../$IMAGE 存取 Thumbor。

不過,這對您來說或許並不適合您,因為雲端服務供應商通常要求您先明確開啟防火牆通訊埠,才能接受傳入流量。

更新防火牆以公開通訊埠 8888。以下說明如何針對:Google CloudAWSAzure 執行這項作業。請注意,就 Google Cloud 而言,您必須先將靜態 IP 位址指派給 VM,然後允許外部 HTTP 連線

立即體驗

縮圖現已可供存取且立即使用。請前往以下網址試用:

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

請注意,這個網址使用 HTTP。Thumbor 預設會使用 HTTP,但您可以設定使用 HTTPS。

您應該會看到高度為 100 像素 x 100 像素的圖片。縮圖已擷取到網址字串指定的圖片 hero.jpg 和大小,並提供結果。您可以替換網址字串中的圖片 (即https://web.dev/install-thumbor/hero.jpg) 搭配任何其他圖片 (例如https://your-site.com/cat.jpg),且 Thumbor 也會調整圖片的大小。

如要進一步瞭解如何使用 Thumbor API,請參閱「使用 Thumbor 最佳化圖片」一文。建議您特別瞭解如何設定 Thumbor 設定檔

附錄:設定 Systemd

這個步驟說明如何確保 Thumbor 程序能持續執行,即使 VM 已重新啟動也一樣。這個步驟對生產網站來說非常重要,但如果您是第一次使用 Thumbor,則可略過。

Systemd 是「系統和服務管理員」適用於 Linux 作業系統systemd 可讓您在執行服務 (程序) 時輕鬆進行設定。

您將設定「systemd」,在 VM 開機時自動啟動 Thumbor。如果 VM 重新啟動, Thumbor 程序也會自動重新啟動。這比仰賴使用者介入動作來啟動好感官的可靠程度。

前往 /lib/systemd/system 目錄。此目錄包含 systemd 的服務檔案。

cd /lib/systemd/system

以超級使用者的身分建立 thumbor.service 檔案。

sudo touch thumbor.service

使用您慣用的文字編輯器 (Ubuntu 已預先安裝 Vim 和 nano,或者您也可以安裝其他編輯器),將下列設定新增至 thumbor.service。網路可用後,這項設定就會執行 /usr/local/bin/thumbor (即 Thumbor 二進位檔),且會在失敗時重新啟動 Thumbor。

[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 的公用程式。使用 start 指令啟動 Thumbor。

sudo systemctl start thumbor.service

接著,「啟用」喜歡。這表示 Thumbor 會在啟動時自動啟動。

sudo systemctl enable thumbor.service

執行 status 指令,確認是否已成功設定 systemd

systemctl status thumbor.service

成功將 thumbor.service 設定成使用 systemd 後,狀態應會顯示已啟用且已啟用。

顯示 Thumbor 狀態的系統圖示