Thumbor 可免费使用,以按需调整图片大小、压缩和转换图片。
图片 CDN 可让您轻松动态地优化图片的美感和性能。与大多数图片 CDN 不同,Thumbor 是开源图片,可免费用于调整图片的大小、压缩和转换图片。它适用于生产环境;Wikipedia 和 Square 都使用 Thumbor。
本指南介绍如何在您自己的服务器上安装 Thumbor。安装后,您就可以使用 Thumbor 作为 API 来转换图片。
简介
您将在运行 Ubuntu 16.04 的虚拟机上安装 Thumbor。Ubuntu 16.04 是一个非常常见的映像,这些说明适用于所有云服务提供商。创建虚拟机听起来比在本地机器上安装 Thumbor 更复杂,但是您花费几分钟创建虚拟机的时间可能就不必像在本地机器上正确安装 Thumbor 一样,省去数小时或数天的麻烦。虽然 Thumbor 易于使用,但众所周知,安装起来非常困难,但是这些说明可以简化该过程。如果依赖项下载速度快,5 到 10 分钟即可完成安装。
前提条件
本博文假定您知道如何在 Google Cloud、AWS, 或 Azure 等云平台上创建 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 Cloud、AWS 和 Azure 执行此操作,请注意,对于 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 以使用 systemd
,status 就会显示它已启用且有效。