- Nginx http image filter 모듈 : Module ngx_http_image_filter_module (nginx.org)
- ngx_http_image_filter_module모듈(0.7.54+)은 JPEG, GIF, PNG 및 WebP 형식의 이미지를 변환하는 필터
- --with-http_image_filter_module 모듈은 기본적으로 빌드되지 않으며 구성 매개변수로 활성화
- nginx의 nginx-module-image-filter 모듈에 필요한 library들을 미리 다운로드 → 다운되지 않아서 해당 내용 확인 필요
- 이미지를 변환하려면 libgd라이브러리를 WebP 지원으로 컴파일필요
$ yum install -y gd gd-devel libc.so.6 libgd.so.2
ngx_http_image_filter_module 모듈 사용 예시
location /img/ {
proxy_pass http://backend;
image_filter resize 150 100;
image_filter rotate 90;
error_page 415 = /empty;
}
location = /empty {
empty_gif;
}
image_filter 지시어
- 이미지에 수행할 변환 유형을 설정
- 문맥: location
- 사용 문법과 사용 예시
# 문법 : image_filter 설정값 image_filter off; image_filter test; image_filter size; image_filter rotate 90 | 180 | 270; image_filter resize width height; image_filter crop width height;
- image_filter 설정값 종류
- off
- 모듈 처리를 종료
- 모듈 처리를 종료
- test
- 응답이 JPEG, GIF, PNG 또는 WebP 형식의 이미지인지 확인
- 그렇지 않으면 415(지원되지 않는 미디어 유형) 오류가 반환
- size
- 이미지에 대한 정보를 JSON 형식으로 출력 → 출력 예시 : { "img" : { "width": 100, "height": 100, "type": "gif" } }
- 오류 출력 → 출력 예시 : {}
- rotate 90|180|270
- 지정된 각도만큼 이미지를 시계 반대 방향으로 회전함
- 매개변수 값은 변수를 포함할 수 있음
- 이 모드는 단독으로 또는 resize및 crop변환과 함께 사용 가능
- resize width height
- 이미지를 지정된 크기로 비례적으로 축소함
- 한 차원만 줄이려면 다른 차원을 " -"로 지정할 수 있음
- 오류가 발생하면 서버는 코드 415(지원되지 않는 미디어 유형)를 반환
- 매개변수 값에는 변수가 포함될 수 있음
- rotate 매개변수와 함께 사용하면, 이미지의 크기를 축소한 후에 rotate 회전이 발생.
- crop width height
- 비례적으로 이미지를 줄이고 불필요한 가장자리를 다른 면으로 자름 → 해당 이미지를 정해진 크기로 자르는 기능
- 한 차원만 줄이려면 다른 차원을 " -"로 지정할 수 있음
- 오류가 발생하면 서버는 코드 415(지원되지 않는 미디어 유형)를 반환
- 매개변수 값에는 변수가 포함될 수 있음
- rotate 매개변수와 함께 사용하면, 이미지의 크기를 축소한 후에 rotate 회전이 발생.
- off
image_filter_buffer 지시어
- 이미지를 읽는 데 사용되는 버퍼의 최대 크기를 설정함
- 크기를 초과하면 서버에서 오류 415(지원되지 않는 미디어 유형)를 반환
- 문맥: http, server, location
- 사용 문법과 사용 예시
# 문법 : image_filter_buffer size; image_filter_buffer 1M;
image_filter_interlace 지시어
- 활성화하면 최종 이미지가 인터레이스됨
- JPEG의 경우 최종 이미지는 "progressive JPEG" 형식이 됨
- 문맥: http, server, location
- image_filter_interlace 지시문은 버전 1.3.15에서부터 지원
- 사용 문법과 사용 예시
# 문법 : image_filter_interlace on | off; image_filter_interlace off;
image_filter_jpeg_quality 지시어
- 변환된 JPEG 이미지 중 원하는 화질을 설정
- 허용되는 값은 1에서 100 사이
- 값이 작을수록 일반적으로 이미지 품질이 낮고 전송할 데이터가 적음
- 최대 권장 값은 95임
- 매개변수 값은 변수를 포함할 수 있음
- 문맥: http, server, location
- 사용 문법과 사용 예시
# 문법 : image_filter_jpeg_quality quality; image_filter_jpeg_quality 75;
image_filter_sharpen 지시어
- 최종 이미지의 선명도를 높일 수 있음
- 선명도 백분율은 100을 초과할 수 있음
- 0 값은 선명도를 비활성화
- 매개변수 값은 변수를 포함할 수 있음
- 문맥: http, server, location
- 사용 문법과 사용 예시
# 문법 : image_filter_sharpen percent; image_filter_sharpen 0;
image_filter_transparency 지시어
- GIF 이미지 또는 PNG 이미지를 팔레트로 지정된 색으로 변환할 때 투명도를 유지해야 하는지 여부를 정의
- 투명도의 손실은 더 나은 품질의 이미지를 만듦
- PNG의 알파 채널 투명도는 항상 유지됨
- 문맥: http, server, location
- 사용 문법과 사용 예시
# 문법 : image_filter_transparency on|off; image_filter_transparency off;
image_filter_webp_quality 지시어
- 변환된 WebP 영상의 원하는 화질을 설정함
- 허용되는 값은 1에서 100 사이의 범위임
- 값이 작을수록 일반적으로 이미지 품질이 낮고 전송할 데이터도 적다는 것을 의미함
- 매개변수 값은 변수를 포함할 수 있음
- image_filter_webp_quality 지시문은 버전 1.11.6에서부터 지원
- 문맥: http, server, location
- 사용 문법과 사용 예시
# 문법 : image_filter_webp_quality quality; image_filter_webp_quality 80;
참고 자료
'Nginx > Nginx 모듈 학습' 카테고리의 다른 글
ngx_http_sub_module 모듈 (0) | 2023.09.22 |
---|---|
ngx_upstream_jdomain 모듈 (0) | 2023.09.21 |
ngx_http_gzip_static_module 모듈 (1) | 2023.09.21 |
ngx_http_gunzip_module 모듈 (0) | 2023.09.21 |
ngx_http_empty_gif_module 모듈 (0) | 2023.09.21 |