Thumbor를 사용하면 필요에 따라 이미지 크기를 조절하고 압축하고 변환하는 데 자유롭게 사용할 수 있습니다.
이미지 CDN을 사용하면 이미지의 미적 요소와 성능을 동적으로 손쉽게 최적화할 수 있습니다. 대부분의 이미지 CDN과 달리 Thumbor는 오픈소스이며, 이미지 크기 조절, 압축, 변환에 무료로 사용할 수 있습니다. 프로덕션 사용에 적합합니다. Wikipedia와 Square 모두 Thumbor를 사용합니다.
이 가이드에서는 자체 서버에 Thumbor를 설치하는 방법을 설명합니다. 설치가 완료되면 Thumbor를 이미지 변환을 위한 API로 사용할 수 있습니다.
소개
Ubuntu 16.04를 실행하는 VM에 Thumbor를 설치합니다. Ubuntu 16.04는 매우 일반적인 이미지이며, 이 안내는 모든 클라우드 제공업체에서 작동하기 위한 것입니다. VM을 만들면 로컬 머신에 Thumbor를 설치하는 것보다 더 많은 작업이 필요할 수 있지만, VM을 만드는 데 몇 분이 걸리면 Thumbor가 로컬 머신에 제대로 설치되도록 하는 데 수시간 또는 며칠의 번거로움을 덜 수 있습니다. Thumbor는 사용하기 쉽지만, 설치가 어렵기로 악명 높은 악명이 높지만, 이러한 지침을 따르면 프로세스를 간소화할 수 있습니다. 종속 항목이 빠르게 다운로드되면 5~10분 내에 설치를 완료할 수 있습니다.
기본 요건
이 게시물에서는 Google Cloud, AWS 또는 Azure와 같은 클라우드 플랫폼에서 Ubuntu 16.04 LTS VM을 만드는 방법과 명령줄 도구를 사용하여 VM을 설정하는 방법을 알고 있다고 가정합니다.
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가 없으면 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에서 실행됩니다. VM의 IP 주소가 12.123.12.122
이면 웹브라우저의 http://12.123.12.123:8888/.../$IMAGE
에서 Thumbor에 액세스합니다.
그러나 클라우드 공급자는 일반적으로 들어오는 트래픽을 수락하기 전에 방화벽 포트를 명시적으로 열어야 하므로 이 방법은 아직 효과가 없습니다.
포트 8888을 노출하도록 방화벽을 업데이트합니다. Google Cloud, AWS, Azure에서 이 작업을 수행하는 방법을 자세히 알아보세요. Google Cloud의 경우 먼저 VM에 고정 IP 주소를 할당한 다음 외부 HTTP 연결을 허용해야 합니다.
사용해 보기
이제 Thumbor에 액세스하고 사용할 수 있습니다. 다음 URL을 방문하여 사용해 보세요.
http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg
이 URL은 HTTP를 사용합니다. Thumbor는 기본적으로 HTTP를 사용하지만 HTTPS를 사용하도록 구성할 수 있습니다.
가로 100픽셀, 세로 100픽셀의 이미지가 표시됩니다. Thumbor가 이미지 hero.jpg
와 URL 문자열에 지정된 크기를 가져와 결과를 제공했습니다. URL 문자열에서 이미지를 바꿀 수 있습니다 (예: https://web.dev/install-thumbor/hero.jpg
)를 다른 이미지 (예: https://your-site.com/cat.jpg
)을 선택하면 Thumbor가 해당 이미지의 크기도 조절합니다.
Thumbor로 이미지 최적화 도움말에는 Thumbor API 사용에 대한 자세한 정보가 나와 있습니다. 특히 Thumbor 구성 파일 설정에 관심이 있을 수 있습니다.
부록: Systemd 구성
이 단계에서는 VM이 다시 시작된 후에도 Thumbor 프로세스가 계속 실행되도록 하는 방법을 설명합니다. 이 단계는 프로덕션 사이트에서는 중요하지만 Thumbor를 사용해 보는 경우에는 선택사항입니다.
Systemd는 '시스템 및 서비스 관리자'입니다. Linux 운영체제용입니다 systemd
를 사용하면 서비스 (프로세스)가 실행될 때 쉽게 구성할 수 있습니다.
VM 부팅 시 Thumbor를 자동으로 시작하도록 systemd
를 구성합니다. VM이 다시 시작되면 Thumbor 프로세스도 자동으로 다시 시작됩니다. 이는 Thumbor를 시작하기 위해 사용자의 개입에 의존하는 것보다 훨씬 더 안정적입니다.
/lib/systemd/system
디렉터리로 이동합니다. 이 디렉터리에는 systemd
의 서비스 파일이 포함되어 있습니다.
cd /lib/systemd/system
수퍼유저로 thumbor.service
파일을 만듭니다.
sudo touch thumbor.service
선호하는 텍스트 편집기 (vim 및 nano가 Ubuntu에 사전 설치되어 있거나 다른 편집기를 설치할 수 있음)를 사용하여 다음 구성을 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
systemd
를 사용하도록 thumbor.service를 성공적으로 설정한 경우 상태에 사용 설정되고 활성 상태로 표시됩니다.
![Thumbor의 상태를 표시하는 Systemctl](https://web.developers.google.cn/static/articles/install-thumbor/image/systemctl-displaying-sta-7d4324ce6097b.jpg?authuser=19&hl=ko)