Cách cài đặt CDN hình ảnh Thumbor

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.

Katie Hempenius
Katie Hempenius

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; WikipediaSquare đề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, AWSAzure. 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