如何安装 Thumbor 映像 CDN

您可以使用 Thumbor 根据需要随意调整图片大小、压缩图片以及转换图片。

Katie Hempenius
Katie Hempenius

图片 CDN 可让您轻松动态地优化图片的美感和性能。与大多数图片 CDN 不同,Thumbor 是开源的,可免费用于调整、压缩和转换图片的大小。适合生产环境使用;WikipediaSquare 都使用 Thumbor。

本指南介绍如何在您自己的服务器上安装 Thumbor。安装后,您就可以使用 Thumbor 作为转换图片的 API。

简介

您将在运行 Ubuntu 16.04 的虚拟机上安装 Thumbor。Ubuntu 16.04 是一种非常常见的映像,这些说明适用于任何云服务提供商。创建虚拟机可能听起来比在本地机器上安装 Thumbor 更复杂,但创建虚拟机只需花费几分钟时间,试图让 Thumbor 正确安装在本地计算机上,就能省去数小时或数天的烦恼。Thumbor 虽然易于使用,但安装起来却困难重重,但这些说明简化了这个过程。如果依赖项下载很快,安装过程可能需要 5 到 10 分钟才能完成。

前提条件

本博文假定您知道如何在 Google CloudAWSAzure 等云平台上创建 Ubuntu 16.04 LTS 虚拟机,以及如何使用命令行工具设置虚拟机。

安装 Thumbor 依赖项

更新和升级 Ubuntu 已安装的软件包:

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

安装 Python 软件包管理器 pip。稍后,您将使用 pip 安装 Thumbor。

sudo apt-get install -y python-pip

安装 Thumbor 的依赖项。Thumbor 的文档并未明确提及这些依赖项,但如果没有这些依赖项,Thumbor 将无法成功安装。

# 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

Thumbor 正在运行。

开放的防火墙端口

默认情况下,Thumbor 在端口 8888 上运行。如果虚拟机的 IP 地址为 12.123.12.122,那么您可以从网络浏览器 (http://12.123.12.123:8888/.../$IMAGE) 访问 Thumbor。

不过,这种方法可能不适合您,因为云服务提供商通常会要求您明确打开防火墙端口,然后这些端口才会接受传入的流量。

更新防火墙以公开端口 8888。详细了解如何对 Google CloudAWSAzure 执行此操作。请注意,对于 Google Cloud,您需要先为虚拟机分配静态 IP 地址,然后允许外部 HTTP 连接

试一试吧

Thumbor 现已可供访问并可供使用。访问以下网址进行试用:

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

请注意,此网址使用 HTTP。Thumbor 默认使用 HTTP,但您可以配置为使用 HTTPS。

您应该会看到一张宽 100 像素、高 100 像素的图片。Thumbor 已获取网址字符串中指定的图片 hero.jpg 和尺寸,并投放了结果。您可以替换网址字符串中的图片(即https://web.dev/install-thumbor/hero.jpg)与其他任何图片(例如,https://your-site.com/cat.jpg),而 Thumbor 也会调整该图片的大小。

如需详细了解如何使用 Thumbor API,请参阅使用 Thumbor 优化图片一文。您可能对设置 Thumbor 配置文件感兴趣。

附录:配置 Systemd

此步骤介绍了如何确保 Thumbor 进程保持运行,即使在虚拟机重启后也是如此。此步骤对于生产网站非常重要,但如果您只是试用一下 Thumbor,这一步是可选的。

Systemd 是“系统和服务管理器”适用于 Linux 操作系统systemd 可让您轻松配置服务(进程)的运行时间。

您将配置 systemd 以在虚拟机启动时自动启动 Thumbor。如果重启虚拟机,Thumbor 进程也会自动重启。这比依靠用户干预来启动 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 设置为使用 systemdstatus 应显示其已启用且有效。

Systemctl 显示 Thumbor 状态