애플리케이션 전송 플랫폼의 최신 릴리스인 NGINX Plus 릴리스 8(R8)을 출시하게 되어 기쁘게 생각합니다. 이번 릴리스에는 프로덕션 환경에 완벽히 적용할 수 있도록 안정성이 강화된 HTTP/2 구현, 영구 동적 재구성 API, 대용량 비디오 파일을 확장성 있게 캐싱할 수 있는 새로운 Slice 모듈을 비롯해 완벽한 애플리케이션 전송을 보장하는 다양한 기능이 포함되어 있습니다.
편집자 주 – NGINX Plus R8에서는 OAuth 기술 프리뷰도 도입되었습니다. 자세한 내용은 아래를 참조하세요.
NGINX Plus R8의 주요 새 기능에 대한 자세한 내용은 다음 관련 자료를 참조하세요.
- 주문형 웨비나:
- 블로그 게시물: NGINX 및 NGINX Plus를 활용한 스마트하고 효율적인 바이트 범위 캐싱
NGINX Plus R8의 주요 새로운 기능은 다음과 같습니다:
- 프로덕션 환경에 완벽히 준비된 HTTP/2 구현 – NGINX Plus R7에서는 프로토콜이 비준된 지 7개월도 채 되지 않아 HTTP/2 지원을 도입했습니다. 이제 NGINX는 HTTP/2 웹 서버 1위입니다. 해당 릴리스 이후에도 개발을 멈추지 않고 구현을 개선하기 위해 꾸준히 노력해 왔습니다. NGINX Plus R8에서는 완벽하게 지원되며 프로덕션 환경에 바로 적용할 수 있고 안정성이 강화된 HTTP/2 표준 구현을 제공합니다. HTTP/2는 웹사이트 성능을 최대 30%까지 향상합니다. NGINX Plus R8을 사용하면 애플리케이션을 변경하지 않고도 신규 및 기존 사이트에 HTTP/2 지원을 계속 추가할 수 있습니다.
- 영구 동적 재구성 API – NGINX Plus의 동적 재구성 API를 사용하면 NGINX Plus를 다시 시작하거나 구성 파일을 직접 수정하고 다시 로드하지 않고도 업스트림 서버를 추가하거나 제거할 수 있습니다. 자동 확장 및 서비스 검색에 매우 유용한 기능으로, 필요에 따라 부하 분산 풀을 수정할 수 있습니다. NGINX Plus R8부터는 API를 통해 변경한 내용이 재시작 또는 구성 다시 로드 후에도 유지될 수 있습니다. 이번 API 업데이트를 통해 서버를 추가 및 제거하고 부하 분산 우선순위를 변경하는 등 NGINX Plus 부하 분산 구성을 영구적으로 변경할 수 있습니다. 보안을 손쉽게 적용할 수 있는 이 API를 사용하면 필요할 때마다 원하는 만큼 자주 변경할 수 있습니다.
- 대용량 비디오 파일을 위한 확장 가능한 캐싱 – NGINX Plus R8에서는 확장 가능한 콘텐츠 캐시를 개선하여 HTML5 비디오와 같은 대용량 비디오 파일을 더욱 효율적으로 처리할 수 있게 되었습니다. 전체 비디오 파일을 하나의 캐시 항목으로 저장하는 대신, NGINX Plus는 파일을 더 작은 조각으로 나눈 후 각 조각을 캐싱합니다. 이러한 캐시 구조는 사용자가 인터넷에서 비디오를 시청하는 방식(빨리 감기, 중간에 시청 종료 등)에 더 적합하며, 사용자 지연 시간과 오리진 서버로 오가는 네트워크 트래픽을 줄여 줍니다.
NGINX Plus R8 기능 상세
이 섹션에서는 NGINX Plus R8의 모든 새로운 기능을 자세히 살펴봅니다.
OAuth 기술 미리 보기
편집자 주 – NGINX Plus R8에서는 OAuth 2.0 표준을 사용한 인증 구현인 OAuth 기술 프리뷰를 도입했으며, 원래 이곳에 자세한 내용이 게재되어 있었습니다. NGINX Plus R10에서는 OAuth 기술 프리뷰를 JSON 웹 토큰(JWT) 표준에 대한 기본 지원으로 대체했습니다.
프로덕션 환경에 적합한 HTTP/2 구현
HTTP/2는 HTTP 프로토콜의 최신 버전입니다. 기존 HTTP 프로토콜의 여러 문제를 해결하여 전반적인 성능을 향상하고 리소스를 더욱 효율적으로 활용할 수 있습니다.
2015년 2월에 표준이 비준된 이후 HTTP/2 사용은 꾸준히 증가해 왔습니다. 이 글을 작성하는 현재, 전체 웹사이트의 6%가 HTTP/2를 사용하고 있으며 인터넷 사용자의 69%가 HTTP/2를 지원하는 브라우저를 사용하고 있습니다.
NGINX Plus R8은 현재 제공되는 HTTP/2 구현 중 실제 환경에서 가장 철저히 검증되었으며 안정성과 신뢰성이 뛰어납니다. HTTP/2를 지원하는 웹사이트의 71%는 NGINX와 NGINX Plus를 기반으로 운영되며, 얼리 어답터의 피드백도 제품에 반영했습니다. NGINX의 HTTP/2 구현은 프로덕션 환경에서 사용할 수 있도록 완벽하게 지원되며, 가장 까다로운 워크로드도 처리할 수 있도록 확장 가능합니다.
NGINX Plus는 HTTP/2 게이트웨이 역할을 합니다
NGINX Plus는 새로운 프로토콜로 쉽게 전환할 수 있도록 “HTTP/2 게이트웨이” 역할을 합니다. 프런트엔드에서 NGINX Plus는 HTTP/2를 지원하는 클라이언트 웹 브라우저와 HTTP/2로 통신합니다. 백엔드에서는 이전과 마찬가지로 HTTP/1.x(또는 FastCGI, SCGI, uwsgi 등)로 통신합니다. 그 사이에서 NGINX Plus는 HTTP/2와 HTTP/1.x(또는 FastCGI 등) 간의 변환을 수행합니다. 따라서 NGINX Plus가 프록시하는 서버와 애플리케이션은 HTTP/2로의 전환에 영향을 받지 않으며, 클라이언트가 HTTP/2를 사용하는지 여부를 알 필요조차 없습니다. 다만 HTTP/2를 지원하는 모든 웹 브라우저의 요구 사항에 따라, HTTP/2 클라이언트에 서비스를 제공하는 웹사이트와 애플리케이션은 TLS/SSL을 사용해야 합니다.
필요한 NGINX Plus 또는 NGINX 구성 변경은 http2 매개변수를 listen 지시문에 추가하는 것뿐입니다:
listen 443 ssl http2 default_server;NGINX Plus 및 NGINX의 HTTP/2에 대한 자세한 내용은 백서와 주문형 웨비나를 참조하세요.
영구적 동적 재구성
NGINX Plus는 구성을 다시 로드할 필요 없이 백엔드 서버를 동적으로 추가, 제거 및 수정할 수 있는 HTTP 기반 API를 제공합니다. 이는 서비스 검색, 자동 확장 및 필요에 따라 서버를 추가하고 제거해야 하는 기타 애플리케이션에 매우 유용한 기능입니다.
NGINX Plus R8에서는 이제 이 API를 사용하여 변경한 내용이 NGINX Plus를 다시 시작하거나 구성을 다시 로드한 후에도 유지될 수 있습니다. 새 state 지시문을 upstream 블록에 추가하여 NGINX Plus가 업스트림 그룹의 서버 상태 정보를 저장할 파일을 지정합니다. 동적 재구성 API를 통해 변경한 내용은 이 파일에 기록됩니다. NGINX Plus는 시작할 때 이 파일을 읽으므로 변경 내용이 다시 시작한 후에도 유지됩니다.
upstream backend {
zone backend 64k;
state /var/lib/nginx/state/backend.state;
}The state 지시어는 NGINX Plus가 업스트림 그룹의 서버 상태 정보를 저장할 파일을 지정합니다. 이 지시어가 구성에 포함된 경우에는 server 지시어를 사용하여 서버를 정적으로 정의할 수 없습니다.
사용자 nginx에게 /var/lib/nginx/state/ 디렉터리에 대한 쓰기 권한이 있어야 합니다. 디렉터리가 아직 없으면 다음 명령을 실행하여 생성할 수 있습니다:
$ sudo mkdir -p /var/lib/nginx/state$ sudo chown nginx:nginx /var/lib/nginx/state대용량 동영상 파일을 위한 확장 가능한 캐싱
캐싱은 웹 콘텐츠 전송 속도를 높이는 가장 빠른 방법 중 하나입니다. 캐싱은 콘텐츠를 최종 사용자와 더 가까운 위치에 배치하여 지연 시간을 줄일 뿐만 아니라, 업스트림 원본 서버로 전송되는 요청 수를 줄여 대역폭 사용량을 낮추고 실질적으로 처리 용량을 늘립니다. 동영상, 특히 HTML5 동영상은 콘텐츠가 정적이고 처음 게시될 때 요청이 집중되는 경향이 있어 캐싱에 매우 적합합니다.
HTML5 동영상의 경우 브라우저는 HTTP 바이트 범위 요청을 통해 콘텐츠를 의사 스트리밍합니다. 예를 들어 동영상의 첫 1분을 요청한 다음 두 번째 1분을 요청하는 식입니다. 이러한 스트리밍 방식에서는 브라우저가 필요하지 않은 동영상 구간을 건너뛰고 사용자가 빨리 감거나 되감은 지점부터 요청할 바이트 범위를 시작하면 되므로, 빨리 감기 및 되감기 기능도 쉽게 구현할 수 있습니다.
NGINX Plus R8에는 캐시된 동영상 파일에 대한 이러한 브라우저-서버 상호 작용 방식을 더욱 효과적으로 지원하기 위해 새로운 Slice 모듈이 포함되어 있습니다. 이 모듈은 파일을 더 작은 조각으로 나눈 다음 해당 조각을 캐시합니다. 이와 같이 캐시를 구성하면 HTML5 동영상에서 사용하는 방식과 같은 최신 동영상 스트리밍 기술에 더 잘 부합합니다.
캐시 슬라이싱을 활성화하려면 slice 지시어를 포함합니다:
proxy_cache_path /tmp/mycache keys_zone=mycache:10m;
location / {
proxy_cache mycache;
proxy_pass http://localhost:8000;
slice 1m;
proxy_cache_key $uri$is_args$args$slice_range;
proxy_set_header Range $slice_range;
proxy_http_version 1.1;
proxy_cache_valid 200 206 1h;
}이 샘플 구성에서 NGINX Plus는 동영상 파일을 1MB 크기의 조각으로 분할합니다. 다음 지시문도 포함해야 합니다:
proxy_cache_key정의된 키에 새$slice_range변수를 포함합니다. 원본 파일의 조각을 구분하도록 캐시 키를 설정합니다.proxy_set_header– HTTP 요청의Range헤더를$slice_range로 덮어씁니다. 클라이언트가 요청한 바이트 범위가 NGINX Plus에서 생성한 조각 간의 경계와 일치하지 않으면, NGINX Plus는 클라이언트의 바이트 범위 요청에 포함된 모든 데이터를 가져오기 위해 여러 하위 요청을 수행해야 합니다.proxy_http_version– HTTP/1.0은 바이트 범위 요청을 지원하지 않으므로 요청을 HTTP/1.1로 업그레이드합니다.
이 새로운 기능에 대한 자세한 내용은 관련 블로그 게시물을 참조하세요.
추가 기능
NGINX Plus R8에는 완벽한 애플리케이션 제공을 지원하기 위한 다음과 같은 여러 추가 개선 사항도 도입되었습니다:
- 복잡한 애플리케이션을 위한 더욱 유연한 상태 점검. 기본적으로 NGINX Plus는
server지시문에서 지정한 포트로 상태 점검 메시지를 전송합니다. 이 지시문은upstream블록에 있습니다. NGINX Plus R8에서는 이제 각location블록에 대체 포트를 지정할 수 있으며, 이는 동일한 호스트에서 여러 서비스의 상태를 모니터링할 때 특히 유용합니다.health_check지시문에 새로운port매개변수를 포함합니다:
location / { proxy_pass http://backend;
health_check port=8080;
}- 기본적으로 NGINX Plus는 이제 HTTP
HEAD요청을 캐시합니다(캐시하기 전에GET요청으로 변환함). 이러한 유형의 캐싱을 비활성화하려면proxy_cache_convert_headoff지시어를 포함합니다.HEAD요청은 응답 본문이 반환되지 않는다는 점을 제외하면 표준GET요청과 동일합니다.HEAD요청은 링크의 유효성, 접근 가능 여부 및 최근 수정 여부를 테스트하는 데 유용합니다. - 새 변수인
$realip_remote_addr는 Real IP 모듈을 사용할 때 원래 클라이언트 IP 주소를 캡처합니다. - 새로운
nohostname매개변수는access_log및error_log지시문에서 호스트 이름 필드가 syslog에 기록되지 않도록 합니다. 로컬 syslog 서버에 로그를 기록할 때는 호스트 이름이 필요하지 않습니다.
NGINX Plus Extras 패키지의 다음 모듈이 업데이트되었습니다:
- The Headers-More 모듈이 0.28 버전으로 업데이트되었습니다
- The Lua 모듈이 0.9.20으로 업데이트되었습니다
- The Phusion Passenger Open Source 모듈이 5.0.22로 업데이트되었습니다
- The Redis 모듈이 0.21 버전으로 업데이트되었습니다
다음 패키지는 더 이상 사용할 수 없습니다:
- nginx-plus-http2 – 이제 HTTP/2 지원은 nginx-plus 및 nginx-plus-extras 패키지에 통합되었습니다. NGINX Plus는 더 이상 SPDY를 지원하지 않습니다.
- nginx-plus-lua – Lua 지원이 필요한 경우 nginx-plus-extras 패키지를 사용하세요.
NGINX Plus 업그레이드 또는 체험
NGINX Plus를 사용 중이라면 가능한 한 빨리 릴리스 8로 업그레이드하시기를 강력히 권장합니다. 여러 수정 사항과 개선 사항이 적용되며, 지원 티켓을 제출해야 할 경우 저희가 더 원활하게 도움을 드릴 수 있습니다. 설치 및 업그레이드 지침은 고객 포털에서 확인할 수 있습니다.
아직 NGINX Plus를 사용해 보지 않으셨다면 웹 가속, 부하 분산 및 애플리케이션 전송을 위해 사용해 보시거나, 향상된 모니터링 및 관리 API를 제공하는 완전한 기술 지원이 포함된 웹 서버로 사용해 보시기 바랍니다. 지금 무료 30일 평가판을 시작하여 NGINX Plus가 애플리케이션을 전송하고 확장하는 데 어떻게 도움이 되는지 직접 확인해 보세요.
작성자 소개

관련 블로그 게시물
시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric
이 영상에서는 KubeCon의 NGINX 부스를 찾아가, 저희가 공개한 Kubernetes Gateway API 구현을 살펴봅니다.
F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법
앱 보안을 강화하는 두 가지 방법을 소개합니다. NGINX Management Suite를 통해 WAF 운영에 대한 가시성을 높이고, NGINX App Protect WAF를 활용해 코드형 보안을 구현하는 것입니다.
Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션
개발 주체, 개발 철학, 프로덕션 환경 준비도, 보안 및 지원을 기준으로 어떤 NGINX Ingress 컨트롤러가 가장 적합한지 알아보세요.
진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법
NGINX App Protect Denial of Service(DoS)가 계층 7 DoS 공격을 방어하기 위해 완화 방법을 실시간으로 조정하는 방식을 설명합니다. 정상적인 사용자 행동과 서버 상태에 대한 모델을 생성하여 공격을 나타내는 이상 징후를 감지하고 맞춤형 완화 시그니처를 적용할 수 있습니다.
NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리
NGINX Instance Manager 버전 1.0에는 두 가지 새로운 기능이 도입되었습니다. NGINX 인스턴스에 태그와 사용자 역할을 지정하면 전체 그룹에 구성을 한 번에 적용할 수 있습니다. 인증서 검사는 만료 예정인 인증서를 감지하여 서비스 중단을 방지할 수 있도록 인증서를 교체할 수 있게 해줍니다.
Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유
Netflix가 글로벌 콘텐츠 전송 네트워크인 Open Connect의 스트리밍 미디어 기술로 NGINX를 선택한 이유를 NGINX 개발자 Gleb Smirnoff에게서 알아보세요.