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

Bạn có thể sử dụng Thumbor mà không mất phí để đổ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á một cách linh động 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 mạng phân phối nội dung (CDN) hình ảnh, Thumbor là nguồn mở và có thể dùng miễn phí để đổi kích thước, nén và biến đổi hình ảnh. Tính năng này phù hợp để sử dụng cho kênh phát hành công khai; cả 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 bạn. Sau khi cài đặt, bạn có thể sử dụng Thumbor làm API để chuyển đổi hình ả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 nhằm mục đích hoạt động trên bất kỳ nhà cung cấp dịch vụ đám mây nào. Việc tạo máy ảo nghe có vẻ phức tạp hơn so với việc cài đặt Thumbor trên máy cục bộ nhưng số phút bạn dành để tạo máy ảo có thể sẽ giúp bạn tiết kiệm nhiều giờ hoặc nhiều ngày thất vọng 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 rất khó cài đặt, nhưng những hướng dẫn này giúp đơn giản hoá quá trình. Nếu các phần phụ thuộc tải xuống nhanh chóng, thì quá trình cài đặt có thể hoàn tất trong 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ư biết 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 cho Python. Sau đó, bạn sẽ cài đặt Thumbor cùng 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, thao tác này sẽ hoạt động:

thumbor --help

Chạy ngón tay cái

Chạy Thumbor. Bạn không bắt buộc phải ghi nhật ký gỡ lỗi nhưng tính năng này có thể hữu ích khi bạn bắt đầu.

thumbor --log-level debug

Hình thu nhỏ 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 sẽ truy cập vào Thumbor trên trình duyệt web tại http://12.123.12.123:8888/.../$IMAGE.

Tuy nhiên, cách này có thể sẽ không hiệu quả cho bạn vì nhà cung cấp dịch vụ đám mây thường yêu cầu bạn phải mở các cổng tường lửa một cách rõ ràng trước khi chúng 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, sau đó cho phép kết nối HTTP bên ngoài.

Hãy thử những nội dung sau

Thumbor hiện đã truy cập được và bạn có thể sử dụng. Hãy dùng thử bằng cách truy cập vào 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 (ví dụ: 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 API Thumbor. 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 theo hệ thống

Bước này giải thích cách đảm bảo quy trình Thumbor luôn chạy, ngay cả sau khi máy ảo được khởi động lại. Bước này quan trọng đối với các trang web sản xuất video nhưng không bắt buộc nếu bạn chỉ đang thử sử dụng Thumbor.

Systemd là "trình quản lý dịch vụ và hệ thống" dành cho các 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. Cách 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ụ cho systemd.

cd /lib/systemd/system

Với vai trò là người dùng cao cấp, hãy tạo một tệp thumbor.service.

sudo touch thumbor.service

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. Sử dụng lệnh start để khởi động Thumbor.

sudo systemctl start thumbor.service

Tiếp theo, hãy "bật" Thumbor. Điều này có nghĩa là Thumbor sẽ tự động bắt đầu 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 xong thumbor.service để sử dụng systemd, thì trạng thái sẽ là trạng thái đã bật và đang hoạt động.

Systemctl hiển thị trạng thái của Thumbor