Thumbor có thể được sử dụng miễn phí để thay đổi kích thước, nén và biến đổi hình ảnh theo yêu cầu.
CDN hình ảnh giúp bạn dễ dàng tối ưu hoá linh hoạt tính thẩm mỹ và hiệu suất của hình ảnh. Không giống như hầu hết các CDN hình ảnh, Thumbor là nguồn mở và có thể được sử dụng miễn phí để thay đổi kích thước, nén và biến đổi hình ảnh. Ứng dụng này phù hợp để phát hành công khai; Wikipedia và Square đều sử dụng Thumbor.
Hướng dẫn này giải thích cách cài đặt Thumbor trên máy chủ của riêng bạn. Sau khi cài đặt, bạn có thể sử dụng Thumbor làm API để biến đổi hình ảnh của mình.
Giới thiệu
Bạn sẽ cài đặt Thumbor trên máy ảo chạy Ubuntu 16.04. Ubuntu 16.04 là một hình ảnh rất phổ biến và các hướng dẫn này được thiết kế để hoạt động trên mọi nhà cung cấp dịch vụ đám mây. Việc tạo máy ảo có vẻ tốn nhiều công sức hơn việc cài đặt Thumbor trên máy cục bộ của bạn. Tuy nhiên, những phút bạn dành để tạo máy ảo có thể giúp bạn tiết kiệm nhiều giờ hoặc nhiều ngày phiền toái khi cố gắng khiến Thumbor cài đặt đúng cách trên máy cục bộ của bạn. Mặc dù dễ sử dụng, Thumbor nổi tiếng rất khó cài đặt nhưng những hướng dẫn này sẽ giúp đơn giản hoá quá trình. Nếu các phần phụ thuộc tải xuống nhanh, quá trình cài đặt có thể hoàn tất sau 5 đến 10 phút.
Điều kiện tiên quyết
Bài đăng này giả định rằng bạn biết cách tạo máy ảo Ubuntu 16.04 LTS trên một nền tảng đám mây như Google Cloud, AWS, hoặc Azure,cũng như cách sử dụng các công cụ dòng lệnh để thiết lập máy ảo.
Cài đặt phần phụ thuộc Thumbor
Cập nhật và nâng cấp các gói đã cài đặt của Ubuntu:
sudo apt-get update -y && sudo apt-get upgrade -y
Cài đặt pip
, trình quản lý gói dành cho Python. Sau này, bạn sẽ cài đặt Thumbor với pip
.
sudo apt-get install -y python-pip
Cài đặt các phần phụ thuộc của Thumbor. Tài liệu của Thumbor không đề cập rõ ràng đến các phần phụ thuộc này, nhưng Thumbor sẽ không cài đặt thành công nếu không có các phần phụ thuộc đó.
# 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
Cài đặt Thumbor
Cài đặt Thumbor bằng pip.
sudo pip install thumbor
Nếu bạn đã cài đặt thành công Thumbor, công cụ này sẽ hoạt động:
thumbor --help
Thumbor
Chạy Thumbor. Tính năng ghi nhật ký gỡ lỗi là không bắt buộc nhưng có thể hữu ích khi bạn bắt đầu.
thumbor --log-level debug
Thumbor hiện đang chạy.
Mở cổng tường lửa
Theo mặc định, Thumbor chạy trên cổng 8888. Nếu địa chỉ IP của máy ảo là 12.123.12.122
, thì bạn có thể truy cập vào Thumbor qua trình duyệt web tại http://12.123.12.123:8888/.../$IMAGE
.
Tuy nhiên, cách này có thể vẫn chưa hiệu quả cho bạn vì các nhà cung cấp dịch vụ đám mây thường yêu cầu bạn mở cổng tường lửa một cách rõ ràng trước khi họ chấp nhận lưu lượng truy cập đến.
Cập nhật tường lửa để hiển thị cổng 8888. Sau đây là thông tin khác về cách thực hiện việc này cho: Google Cloud, AWS và Azure. Xin lưu ý rằng đối với Google Cloud, trước tiên, bạn cần chỉ định một địa chỉ IP tĩnh cho máy ảo của mình rồi cho phép kết nối HTTP bên ngoài.
Hãy thử những nội dung sau
Thumbor hiện có thể truy cập được và sẵn sàng để sử dụng. Hãy dùng thử bằng cách truy cập URL sau:
http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg
Xin lưu ý rằng URL này sử dụng HTTP. Thumbor sử dụng HTTP theo mặc định, nhưng bạn có thể định cấu hình để sử dụng HTTPS.
Bạn sẽ thấy một hình ảnh rộng 100 pixel x cao 100 pixel. Thumbor đã lấy hình ảnh hero.jpg
và kích thước được chỉ định trong chuỗi URL rồi phân phát kết quả. Bạn có thể thay thế hình ảnh đó trong chuỗi URL (tức là https://web.dev/install-thumbor/hero.jpg
) với bất kỳ hình ảnh nào khác (ví dụ: https://your-site.com/cat.jpg
) và Thumbor cũng sẽ đổi kích thước hình ảnh đó.
Bài viết Tối ưu hoá hình ảnh bằng Thumbor có thêm thông tin về cách sử dụng Thumbor API. Cụ thể, bạn có thể quan tâm đến việc thiết lập tệp cấu hình Thumbor.
Phụ lục: Định cấu hình hệ thống
Bước này giải thích cách để đảm bảo rằng quy trình Thumbor vẫn tiếp tục chạy, ngay cả sau khi khởi động lại máy ảo. Bước này rất quan trọng đối với các trang web sản xuất nhưng không bắt buộc nếu bạn chỉ muốn sử dụng Thumbor.
Systemd là "trình quản lý hệ thống và dịch vụ" dành cho hệ điều hành Linux. systemd
giúp bạn dễ dàng định cấu hình khi các dịch vụ (quy trình) chạy.
Bạn sẽ định cấu hình systemd
để tự động khởi động Thumbor khi khởi động máy ảo. Nếu máy ảo được khởi động lại, quy trình Thumbor cũng sẽ tự động khởi động lại. Điều này đáng tin cậy hơn nhiều so với việc dựa vào sự can thiệp của người dùng để khởi động Thumbor.
Chuyển đến thư mục /lib/systemd/system
. Thư mục này chứa các tệp dịch vụ của systemd
.
cd /lib/systemd/system
Ở vai trò siêu người dùng, hãy tạo một tệp thumbor.service
.
sudo touch thumbor.service
Bằng cách sử dụng trình chỉnh sửa văn bản yêu thích của bạn (vim và nano được cài đặt sẵn trên Ubuntu hoặc bạn có thể cài đặt một trình chỉnh sửa khác), thêm cấu hình sau vào thumbor.service
. Cấu hình này sẽ chạy /usr/local/bin/thumbor
(tức là tệp nhị phân Thumbor) sau khi có kết nối mạng và sẽ khởi động lại Thumbor khi không thành công.
[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
là tiện ích dùng để quản lý systemd
. Dùng lệnh start
để khởi động Thumbor.
sudo systemctl start thumbor.service
Tiếp theo, "bật" Hình thu nhỏ. Điều này có nghĩa là Thumbor sẽ tự động khởi động khi khởi động.
sudo systemctl enable thumbor.service
Xác minh rằng bạn đã định cấu hình systemd
thành công bằng cách chạy lệnh status
.
systemctl status thumbor.service
Nếu bạn đã thiết lập thành công thumbor.service để sử dụng systemd
, thì trạng thái sẽ phải cho biết là dịch vụ này đã được bật và đang hoạt động.
![Systemctl hiển thị trạng thái của Thumbor](https://web.dev/static/articles/install-thumbor/image/systemctl-displaying-sta-7d4324ce6097b.jpg?authuser=5&hl=vi)