您可以使用 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 应显示其已启用且有效。