티스토리 뷰

imageproxy 는 웹서버 앞단에서
static file cache 역할과 image resizing 역할을 수행하는
Go 언어로 작성된 프록시 서버 입니다.


git 1.8 설치 (아래 go get 명령시 git clone 실행됨)

wget http://springdale.math.ias.edu/data/puias/computational/6/x86_64/git-1.8.3.1-1.sdl6.x86_64.rpm && \

wget http://springdale.math.ias.edu/data/puias/computational/6/x86_64/perl-Git-1.8.3.1-1.sdl6.noarch.rpm && \

yum remove git -y && \

yum localinstall git-*.rpm perl-Git-*.noarch.rpm -y

git SSL connection 오류 예방 위한 패키지 업데이트:

yum update -y nss curl


Go 언어 설치

cd /usr/local/src && \

wget https://dl.google.com/go/go1.10.linux-amd64.tar.gz && \

tar -C /usr/local -xzf go1.10.linux-amd64.tar.gz


PATH 추가

vi /etc/profile


export PATH=$PATH:/usr/local/bin:/usr/local/go/bin

위의 PATH 현재 콘솔에 적용:

source /etc/profile


ImageProxy 설치

go get willnorris.com/go/imageproxy/cmd/imageproxy && \

cp ~/go/bin/imageproxy /usr/local/bin


ImageProxy 실행 테스팅

imageproxy -addr {이 서버 IP주소}:{사용할 포트} -cache /tmp/imageproxy -baseURL http://{원본 이미지 웹서버}

ex) imageproxy -addr 192.168.0.101:8080 -cache /tmp/imageproxy -baseURL http://192.168.0.200

실행 테스팅 잘 되었다면 Ctrl + C 로 실행 중지 후,
Background Daemon 모드로 실행

nohup /usr/local/bin/imageproxy \

 -addr {이 서버 IP주소}:{사용할 포트} \

 -cache /tmp/imageproxy \

 -baseURL http://{원본 이미지 웹서버} \

> /var/log/imageproxy.log 2>&1 &


ex) nohup /usr/local/bin/imageproxy \

 -addr 192.168.0.101:8080 \

 -cache /tmp/imageproxy \

 -baseURL http://192.168.0.200 \

> /var/log/imageproxy.log 2>&1 &

nohup background 실행 보다는 supervisord 에 등록하여 실행하는것을 추천함.


브라우저로 접근하여 이미지 로드 테스팅

http://192.168.0.101:8080/0/some/image/path/filename.jpg

위 URL 도메인 다음 부분인 리사이징 옵션

0x0         - resizing 하지 않음

200x        - 200 pixels 넓이, 그 넓이에 비례한 높이

x0.15       - 15% original 높이, 그 높이에 비례한 넓이

100x150     - 100 by 150 pixels, 필요하면 crop

100         - 100 pixels 사각형, 필요하면 crop

150,fit     - 150 pixels 사각형에 크기 fit하게, crop 없음

100,r90     - 100 pixels 사각형, 90도 회전

100,fv,fh   - 100 pixels 사각형, 가로 세로 flip

200x,q60    - 200 pixels 넓이, 비례한 높이, 60% quality

200x,png    - 200 pixels 넓이, PNG 포맷으로 변환

cw100,ch100 - 100px 사각형으로 crop, (0,0) 좌표를 시작점으로

cx10,cy20,cw100,ch200 - (10,20) 시작점 기준 100px 넓이와 200px 높이로 crop

옵션들 상세는 홈페이지인 https://github.com/willnorris/imageproxy 참고.

댓글